#include #include #include using namespace std; int knapsack(int W, const vector& wt, const vector& val) { int n = wt.size(); vector> dp(n + 1, vector(W + 1, 0)); for (int i = 1; i <= n; ++i) { for (int w = 0; w <= W; ++w) { if (wt[i - 1] <= w) { dp[i][w] = max(dp[i - 1][w], dp[i - 1][w - wt[i - 1]] + val[i - 1]); } else { dp[i][w] = dp[i - 1][w]; } } } return dp[n][W]; } int main() { int W = 50; // Knapsack capacity vector wt = {10, 20, 30}; vector val = {60, 100, 120}; cout << "Max value: " << knapsack(W, wt, val) << endl; return 0; }