Advertisement
NabilaShova

0/1 Knapsack

Dec 5th, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.32 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. int Knapsack_func(int weight[],int value[],int item,int knapsack)
  5. {
  6.     int m[50][50],p[50][50];
  7.     for(int i=0;i<=item;i++)
  8.     {
  9.         m[0][i]=0;
  10.     }
  11.     for(int i=0;i<=knapsack;i++)
  12.     {
  13.         m[i][0]=0;
  14.     }
  15.     for(int i=0;i<=item;i++)
  16.     {
  17.         for(int j=0;j<=knapsack;j++)
  18.         {
  19.             if((j-weight[i])>=0)
  20.             {
  21.                 if(m[i-1][j] > m[i-1][j-weight[i]]+value[i])
  22.                 {
  23.                     m[i][j]=m[i-1][j];
  24.                     p[i][j]='T';
  25.                 }
  26.                 else
  27.                 {
  28.                     m[i][j]= m[i-1][j-weight[i]] + value[i];
  29.                     p[i][j]='C';
  30.                 }
  31.             }
  32.             else
  33.             {
  34.                 m[i][j]=m[i-1][j];
  35.             }
  36.         }
  37.     }
  38.     return m[item][knapsack];
  39. }
  40.  
  41. int main()
  42. {
  43.     int weight[50],value[50],item,knapsack, ans;
  44.     cout<<"enter item number: ";
  45.     cin>>item;
  46.     cout<<"enter knapsack size: ";
  47.     cin>>knapsack;
  48.     cout<<"enter value ";
  49.     for(int i=0;i<item;i++)
  50.     {
  51.         cin>>value[i];
  52.     }
  53.     cout<<"enter weight ";
  54.     for(int i=0;i<item;i++)
  55.     {
  56.         cin>>weight[i];
  57.     }
  58.     ans = Knapsack_func(weight,value,item,knapsack);
  59.     cout << ans << endl;
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement