#include <stdio.h>
int max(int a, int b) {
return (a > b) ? a : b;
}
int beanBagProblem(int C, int w[], int v[], int n) {
int dp[n + 1][C + 1];
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= C; j++) {
if (i == 0 || j == 0)
dp[i][j] = 0;
else if (w[i - 1] > j)
dp[i][j] = dp[i - 1][j];
else
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - w[i - 1]] + v[i - 1]);
}
}
return dp[n][C];
}
int main() {
int C = 10;
int w[] = {2, 3, 4, 5};
int v[] = {3, 4, 5, 6};
int n = sizeof(w) / sizeof(w[0]);
int result = beanBagProblem(C, w, v, n);
printf("最大重量: %d\n", result);
return 0;
}