Skip to content

Commit 42a83dc

Browse files
author
Bhrigu Kansra
authored
Merge pull request #159 from ashukeshri/master
added code of knapsack
2 parents 7b1e4b9 + 6b8036e commit 42a83dc

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#include <bits/stdc++.h>
2+
using namespace std;
3+
#define ll long long
4+
#define o 100005
5+
#define MOD 1000000007
6+
#define pb push_back
7+
#define mp make_pair
8+
#define mem(a,b) memset(a,(b),sizeof(a))
9+
#define lpo(a) for(int i=0;i<a;i++)
10+
#define loop(a,x) for(int i=a;i<x;i++)
11+
#define srt(x) sort(x.begin(),x.end())
12+
#define all(x) x.begin(),x.end()
13+
const ll MAX=1000000000000000001;
14+
typedef pair<int,int> pii;
15+
int knapSack(int W, int wt[], int val[], int n)
16+
{
17+
int i, w;
18+
int K[n+1][W+1];
19+
for (i = 0; i <= n; i++)
20+
{
21+
for (w = 0; w <= W; w++)
22+
{
23+
if (i==0 || w==0)
24+
K[i][w] = 0;
25+
else if (wt[i-1] <= w)
26+
K[i][w] = max(val[i-1] + K[i-1][w-wt[i-1]], K[i-1][w]);
27+
else
28+
K[i][w] = K[i-1][w];
29+
}
30+
}
31+
32+
return K[n][W];
33+
}
34+
35+
int main()
36+
{
37+
int val[] = {20, 30, 40};
38+
int wt[] = {10, 20, 30};
39+
int W = 50;
40+
int n = sizeof(val)/sizeof(val[0]);
41+
cout<<knapSack(W, wt, val, n);
42+
return 0;
43+
}

0 commit comments

Comments
 (0)