#include <stdio.h>
#define MAX_ITEMS 100
#define MAX_CAPACITY 1000
int knapsack(int values[], int weights[], int n, int capacity) {
int dp[MAX_ITEMS + 1][MAX_CAPACITY + 1];
for (int i = 0; i <= n; i++) {
dp[i][0] = 0;
}
for (int j = 0; j <= capacity; j++) {
dp[0][j] = 0;
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= capacity; j++) {
if (weights[i - 1] > j) {
dp[i][j] = dp[i - 1][j];
}
else {
dp[i][j] = (dp[i - 1][j] > (dp[i - 1][j - weights[i - 1]] + values[i - 1])) ? dp[i - 1][j] : (dp[i - 1][j - weights[i - 1]] + values[i - 1]);
}
}
}
return dp[n][capacity];
}
int main() {
int values[] = {90, 135, 270};
int weights[] = {25, 30, 15};
int n = sizeof(values) / sizeof(values[0]);
int capacity = 50;
int max_value = knapsack(values, weights, n, capacity);
printf("可以获得的最大值是: %d\n", max_value);
return 0;
}