fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int grid[1000][100000];
  5. int h[1000], s[1000];
  6. int n,x;
  7. bool finished[1000][100000];
  8.  
  9. int solve(int i, int j) {
  10. if(i==0) {
  11. return 0;
  12. }
  13.  
  14. if(finished[i][j]) return grid[i][j];
  15. finished[i][j]=true;
  16.  
  17. // ga diambil
  18. grid[i][j]=solve(i-1, j);
  19.  
  20. // ambil
  21. if(x>=s[i]) {
  22. grid[i][j]=max(grid[i][j], solve(i-1, j-s[i])+h[i]);
  23. }
  24.  
  25. return grid[n][x];
  26. }
  27.  
  28. int main() {
  29. cin >> n >> x;
  30.  
  31. for(int i=0; i<n; i++) {
  32. cin >> h[i];
  33. }
  34. for(int i=0; i<n; i++) {
  35. cin >> s[i];
  36. }
  37.  
  38. cout << solve(n,x) << endl;
  39. }
Success #stdin #stdout 0.01s 5312KB
stdin
Standard input is empty
stdout
0