File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed
Algorithms/Dynamic Programming/C++ Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments