Advertisement
Kawsar_Hossain

0-1 Knapsack

Jul 27th, 2020
1,352
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.10 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. int main()
  4. {
  5.     int dataset[100][100];
  6.     int item,i,j,capacity,weight[100],profit[100];
  7.     printf("Enter number of items: ");
  8.     scanf("%d", &item);
  9.     printf("Enter profit & weight respectively: \n");
  10.     for(int k=1;k<=item;k++)
  11.     {
  12.         scanf("%d %d", &profit[k],&weight[k]);
  13.     }
  14.     printf("Enter Capacity: ");
  15.     scanf("%d", &capacity);
  16.     for(i=0;i<=capacity;++i)
  17.     {
  18.         dataset[0][i]=0;
  19.     }
  20.     for(i=0;i<=item;++i)
  21.     {
  22.         dataset[i][0]=0;
  23.     }
  24.     for(i=1;i<=item;++i)
  25.     {
  26.         for(j=1;j<=capacity;++j)
  27.         {
  28.             if(weight[i]<=j)
  29.             {
  30.                 if((dataset[i-1][j-weight[i]]+profit[i])>dataset[i-1][j])
  31.                 {
  32.                     dataset[i][j]=(dataset[i-1][j-weight[i]]+profit[i]);
  33.                 }
  34.                 else
  35.                 {
  36.                     dataset[i][j]=dataset[i-1][j];
  37.                 }
  38.             }
  39.             else
  40.             {
  41.                 dataset[i][j]=dataset[i-1][j];
  42.             }
  43.         }
  44.     }
  45.     printf("Profit: %d", dataset[item][capacity]);
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement