josiftepe

Untitled

Nov 21st, 2020
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <set>
  4. #include <bitset>
  5. #include <algorithm>
  6. #include <cstring>
  7. using namespace std;
  8. int budget;
  9. int x;
  10. int cena [1000];
  11. int stranici [1000];
  12. int dp[1000] [100000];
  13.  
  14. int rec (int i, int m){
  15. int answer=-1e9 ; //1-e9 = 1 / 10^9
  16. if (i == x)
  17. return 0;
  18. if(dp[i][m] != -1)
  19. return dp[i][m];
  20. if(cena[i] <= m){
  21. answer = max(answer, rec(i+1,m-cena[i]) + stranici[i]);
  22. }
  23.  
  24. answer = max(answer, rec(i+1,m));
  25. dp[i][m] = answer;
  26. return answer;
  27.  
  28. }
  29. int main() {
  30. ios_base::sync_with_stdio(false);
  31. memset(dp, -1, sizeof dp);
  32. cin >> x >> budget ;
  33. for(int i =0;i <x; i++){
  34. cin >> cena[i];
  35. }
  36. for (int i =0;i <x;i++){
  37. cin >> stranici[i];
  38. }
  39. cout << rec(0,budget);
  40. }
  41.  
Advertisement
Add Comment
Please, Sign In to add comment