Advertisement
apl-mhd

DP 01 knapsack recursion top down

Mar 1st, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.50 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <algorithm>
  4.  
  5. using  namespace std;
  6.  
  7.  
  8.  
  9. int kn(int w, int n, int wt[], int val[]){
  10.  
  11.     if(w==0 || n==0)
  12.         return 0;
  13.  
  14.     if(wt[n-1]> w)
  15.         return kn(w, n-1, wt,val);
  16.  
  17.     return max(val[n-1]+kn(w-wt[n-1],n-1,wt,val), kn(w,n-1,wt,val));
  18.  
  19. }
  20.  
  21.  
  22.  
  23. int main() {
  24.  
  25.  
  26.     int wt [] ={1,3,4,5};
  27.     int val [] = {1,4,5,7};
  28.  
  29.     int w=7;
  30.  
  31.     int size = sizeof(wt)/4;
  32.  
  33.  
  34.  
  35.     cout<<kn(w,size,wt,val);
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.     return 0;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement