Advertisement
Nusrat_Ullah

0-1 Knapsack DP

Jul 27th, 2019
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.58 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int t,w[103],v[103],dp[103][103];
  4. int val(int id,int remw)
  5. {
  6.     if(remw==0)return 0;
  7.     if(id==t)return 0;
  8.     if(dp[id][remw])return dp[id][remw];
  9.     if(w[id]>remw)
  10.         return dp[id][remw]=val(id+1,remw);
  11.     else if(w[id]<=remw)
  12.         return dp[id][remw]=max(val(id+1,remw),v[id]+val(id+1,remw-w[id]));
  13. }
  14. int main()
  15. {
  16.     int tw,g,re;
  17.     scanf("%d",&t);
  18.     for(g=0;g<t;g++)scanf("%d",&v[g]);
  19.     for(g=0;g<t;g++)scanf("%d",&w[g]);
  20.     scanf("%d",&tw);
  21.     re=val(0,tw);
  22.     printf("%d\n",re);
  23.     return 0;
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement