#include <iostream>
using namespace std;
struct fruit{
string name;
int weight;
int value;
};
void sort(struct fruit fru[],int p[],int fruitCount){
for(int i = fruitCount-1;i > 0;--i){
for (int j = 0;j < i; ++j){
if(p[j] < p[j+1]){
int temp = p[j];
p[j] = p[j+1];
p[j+1] = temp;
struct fruit frutemp = {fru[j].name,fru[j].weight,fru[j].value};
fru[j] = fru[j+1];
fru[j+1] = frutemp;
}
}
}
}
void getMaxValueForBackpack(int capacity,struct fruit fru[],int fruitCount){
int p[fruitCount-1];
for (int i = 0;i < fruitCount; ++i){
p[i] = fru[i].value / fru[i].weight;
}
sort(fru,p,fruitCount);
int sum = 0;
for (int i = 0;i < fruitCount;i++){
if(capacity > fru[i].weight){
capacity -= fru[i].weight;
sum += fru[i].value;
}else{
sum += capacity*p[i];
break;
}
}
cout << "max value:" << sum << endl;
}
int main() {
struct fruit fru[4]={
"苹果", 15, 300,
"香蕉", 18, 180,
"橘子", 10, 150,
"猕猴桃", 9, 270
};
getMaxValueForBackpack(20,fru,4);
return 0;
}