Advertisement
Guest User

Untitled

a guest
Sep 15th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int weigth[1000];
  4. int cost[1000];
  5. int dp[1000][1000];
  6. int cap;
  7. int item;
  8. int knapsack(int i ,int w)
  9. {
  10.  
  11. if(i==item+1)
  12. {
  13.  
  14. return 0;
  15. }
  16. int p =0,q=0;
  17. if(dp[i][w]!=0)
  18. {
  19.  
  20. return dp[i][w];
  21. }
  22. if(w+weigth[i]<=cap)
  23. {
  24.  
  25.  
  26. p = cost[i] + knapsack(i+1,w+weigth[i]);
  27.  
  28. }
  29. q= knapsack(i+1,w);
  30. dp[i][w]= max(p,q);
  31. return dp[i][w];
  32. }
  33. int main()
  34. {
  35.  
  36. freopen("in.txt","r",stdin);
  37. freopen("out.txt","w",stdout);
  38.  
  39. cin>> item >> cap;
  40. // int w,c;
  41. for(int i =1; i<=item; i++)
  42. {
  43.  
  44. cin >> weigth[i] >> cost[i];
  45.  
  46. }
  47.  
  48.  
  49.  
  50. cout << knapsack(1,0) << endl;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement