From 6b8036e646bfed6c169ed3fabf6a231e2a8295d7 Mon Sep 17 00:00:00 2001 From: Ashutosh Kumar Date: Tue, 30 Oct 2018 22:20:15 +0530 Subject: [PATCH] added code of knapsack --- .../Dynamic Programming/C++/knapsack.cpp | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Algorithms/Dynamic Programming/C++/knapsack.cpp diff --git a/Algorithms/Dynamic Programming/C++/knapsack.cpp b/Algorithms/Dynamic Programming/C++/knapsack.cpp new file mode 100644 index 0000000..d678b0d --- /dev/null +++ b/Algorithms/Dynamic Programming/C++/knapsack.cpp @@ -0,0 +1,43 @@ +#include +using namespace std; +#define ll long long +#define o 100005 +#define MOD 1000000007 +#define pb push_back +#define mp make_pair +#define mem(a,b) memset(a,(b),sizeof(a)) +#define lpo(a) for(int i=0;i pii; +int knapSack(int W, int wt[], int val[], int n) +{ + int i, w; + int K[n+1][W+1]; + for (i = 0; i <= n; i++) + { + for (w = 0; w <= W; w++) + { + if (i==0 || w==0) + K[i][w] = 0; + else if (wt[i-1] <= w) + K[i][w] = max(val[i-1] + K[i-1][w-wt[i-1]], K[i-1][w]); + else + K[i][w] = K[i-1][w]; + } + } + + return K[n][W]; +} + +int main() +{ + int val[] = {20, 30, 40}; + int wt[] = {10, 20, 30}; + int W = 50; + int n = sizeof(val)/sizeof(val[0]); + cout<