算法:贪心。
注意:优先抛售性价比搞的月饼(性价比 = 月饼总售价 / 月饼总库存)。
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
struct Node {
double n;
double v;
}a[1005];
bool mycmp(Node& b1, Node& b2)
{
return b1.v * b2.n > b2.v * b1.n;//性价比移项后表示
}
int main()
{
int n, m;
double sum = 0;
cin >> n >> m;
for (int i = 0; i < n; i++)
{
cin >> a[i].n;
}
for (int i = 0; i < n; i++)
{
cin >> a[i].v;
}
sort(a,a+n,mycmp);//贪心
for (int i = 0; i < n && m; i++)
{
if (a[i].n < m) {
m -= a[i].n;
sum += a[i].v;
}
else {
sum += m * a[i].v/a[i].n;
m = 0;
}
}
printf("%.2lf", sum);
return 0;
}