#include <stdio.h>
#define MAX_FRUITS 4
#define MAX_WEIGHT 20
int fruits[MAX_FRUITS][2] = {{15, 300}, {18, 180}, {10, 150}, {9, 270}};
int max(int a, int b) {
return (a > b) ? a : b;
}
int main() {
int totalWeight = 0;
int maxValue = 0;
int maxFruits[MAX_FRUITS];
int numFruits = 0;
for (int i = 0; i < MAX_FRUITS; i++) {
if (totalWeight + fruits[i][0] <= MAX_WEIGHT) {
maxValue += fruits[i][1];
totalWeight += fruits[i][0];
maxFruits[numFruits++] = i;
} else if (totalWeight + fruits[i][0] > MAX_WEIGHT && maxValue < fruits[i][1]) {
int diff = fruits[i][0] - (MAX_WEIGHT - totalWeight);
maxValue += diff * (fruits[i][1] / fruits[i][0]);
}
}
printf("装水果的策略:\n");
for (int i = 0; i < numFruits; i++) {
printf("水果名称:%s,装入重量:%dkg,价值:%d元\n", fruits[maxFruits[i]][2], fruits[maxFruits[i]][0], fruits[maxFruits[i]][1]);
}
printf("背包中装入水果的总价值:%d元\n", maxValue);
return 0;
}