Advertisement
apl-mhd

knapsak Zitu sir

Apr 3rd, 2018
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.99 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <cstdio>
  4. #include <climits>
  5. #define MAX 100
  6. using namespace std;
  7.  
  8.  
  9. int M[5][11];
  10.  
  11. int knapsack(int i,int capacity, int wt[], int val[]){
  12.  
  13.     int val1;
  14.  
  15.     if( (i==5) || (capacity < wt[i]))
  16.         return  0;
  17.  
  18.     if(wt[i]<=capacity)
  19.          val1= val[i] + knapsack(i+1, capacity-wt[i],wt,val);
  20.  
  21.     int val2 = knapsack(i+1, capacity, wt,val);
  22.  
  23.     M[i][capacity] = max(val1,val2);
  24.  
  25.  
  26.     return M[i][capacity];
  27.  
  28.  
  29.    // return max(val[i] + knapsack(i+1, capacity-wt[i],wt,val), knapsack(i+1, capacity, wt,val));
  30.  
  31.  
  32.  
  33. }
  34.  
  35. int main() {
  36.  
  37.     int wt[] = {1,2,3,4,5};
  38.     int val[] = {2,1,10,3,10};
  39.  
  40.     for(int i=0;i<5; i++){
  41.  
  42.         for (int j = 0; j <11 ; ++j) {
  43.  
  44.             M[i][j]=-1;
  45.  
  46.         }
  47.     }
  48.  
  49.  
  50.     cout<<knapsack(0,5,wt,val)<<endl;
  51.  
  52.  
  53.     for(int i=0;i<5; i++){
  54.  
  55.         for (int j = 0; j <6 ; ++j) {
  56.  
  57.             cout<<M[i][j]<<" ";
  58.  
  59.         }
  60.  
  61.         cout<<endl;
  62.     }
  63.  
  64.  
  65.  
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement