现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct Yue {
double price=0.0;
double keep;
double sale;
};
bool compare(const Yue& y1, const Yue& y2) {
if (y1.price < y2.price) return false;
else return true;
}
int main() {
int size;
double d;
cin >> size >> d;
vector<Yue> vec(size);
for (int i = 0;i < size;++i)
cin >> vec[i].keep;
for (int i = 0;i < size;++i) {
cin >> vec[i].sale;
vec[i].price = vec[i].sale / vec[i].keep;
}
sort(vec.begin(),vec.end(),compare);
double sum=0;
for (int i = 0;i < size;++i) {
if (d < vec[i].keep) {
sum += d*vec[i].price;
break;
}
else sum += vec[i].sale;
d-= vec[i].keep;
}
printf("%.2f", sum);//格式化输出
return 0;
}
由于销量和总价不一定是正整数。全部变量使用double。