Skip to content

Commit d6e7e6f

Browse files
Merge pull request matthewsamuel95#71 from 96mohitm/dp-knapsack
Fix matthewsamuel95#62: Added Knapsack in cpp.
2 parents 0843ded + ef7d203 commit d6e7e6f

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

DP/Knapsack/KP.cpp

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#include<bits/stdc++.h>
2+
using namespace std;
3+
4+
int max(int a, int b) { return (a > b)? a : b; }
5+
6+
int knapSack(int W, int wt[], int val[], int n)
7+
{
8+
int i, w;
9+
int K[n+1][W+1];
10+
11+
// Build table K[][] in bottom up manner
12+
for (i = 0; i <= n; i++)
13+
{
14+
for (w = 0; w <= W; w++)
15+
{
16+
if (i==0 || w==0)
17+
K[i][w] = 0;
18+
else if (wt[i-1] <= w)
19+
K[i][w] = max(val[i-1] + K[i-1][w-wt[i-1]], K[i-1][w]);
20+
else
21+
K[i][w] = K[i-1][w];
22+
}
23+
}
24+
25+
return K[n][W];
26+
}
27+
28+
int main()
29+
{
30+
int n,W;
31+
cin>>n;
32+
int val[n],wt[n];
33+
for(int i=0;i<n;i++)
34+
cin>>val[i];
35+
for(int i=0;i<n;i++)
36+
cin>>wt[i];
37+
cin>>W;
38+
printf("%d\n", knapSack(W, wt, val, n));
39+
return 0;
40+
}

0 commit comments

Comments
 (0)