spider68

knapsack

May 22nd, 2020
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.74 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int knapSack(int W, int wt[], int val[], int n)
  5. {
  6.     int i, w;
  7.     int K[n + 1][W + 1];
  8.  
  9.     for (i = 0; i <= n; i++) {
  10.         for (w = 0; w <= W; w++) {
  11.             if (i == 0 || w == 0)
  12.                 K[i][w] = 0;
  13.             else if (wt[i - 1] <= w)
  14.                 K[i][w] = max(
  15.                     val[i - 1] + K[i - 1][w - wt[i - 1]],
  16.                     K[i - 1][w]);
  17.             else
  18.                 K[i][w] = K[i - 1][w];
  19.         }
  20.     }
  21.  
  22.     return K[n][W];
  23. }
  24.  
  25. int main()
  26. {
  27.     int n,w;
  28.     cin>>n>>w;
  29.     int val[n];
  30.     int wt[n];
  31.     for(int i=0;i<n;i++)cin>>wt[i];
  32.     for(int i=0;i<n;i++)cin>>val[i];
  33.     printf("%d", knapSack(w, wt, val, n));
  34.     return 0;
  35. }
Add Comment
Please, Sign In to add comment