diff --git a/c++/0-1 knapsack.cpp b/c++/0-1 knapsack.cpp new file mode 100644 index 0000000..d7b0640 --- /dev/null +++ b/c++/0-1 knapsack.cpp @@ -0,0 +1,30 @@ +#include +using namespace std; +int knapSack(int W, int wt[], int val[], int n) +{ + + int dp[W + 1]; + memset(dp, 0, sizeof(dp)); + + for (int i = 1; i < n + 1; i++) + { + for (int w = W; w >= 0; w--) + { + + if (wt[i - 1] <= w) + + dp[w] = max(dp[w], + dp[w - wt[i - 1]] + val[i - 1]); + } + } + return dp[W]; +} +int main() +{ + int val[] = {60, 100, 120}; + int wt[] = {10, 20, 30}; + int m = 50; + int n = sizeof(val) / sizeof(val[0]); + cout << knapSack(m, wt, val, n); + return 0; +}