fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define clr(a, h) memset(a, (h), sizeof(a))
  5.  
  6. //1 <= n <= 1000 cantidad de productos
  7. //1 <= ai <= 1000 precio de cada producto
  8. //1 <= k <= 10^6 dinero
  9.  
  10. int n, k;
  11. int a[1000 + 10];
  12.  
  13. ll f(int pos, int gastado) { //(0<=pos<n) (0<=gastado<=k)
  14. if(gastado > k) return 0;
  15. if(pos == n) return gastado; //si ya acabe los productos, retorno lo gastado
  16.  
  17. int tomar = f(pos + 1, gastado + a[pos]);
  18. int no_tomar = f(pos + 1, gastado);
  19.  
  20. return max(tomar, no_tomar);
  21. }
  22.  
  23. int main() {
  24. cin >> n >> k;
  25. for(int i = 0; i < n; i++)
  26. cin >> a[i];
  27. cout << f(0, 0) << "\n";
  28. return 0;
  29. }
  30.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
0