输出格式:
对每组测试用例,在一行中输出最大收益,以亿元为单位并精确到小数点后 2 位。
输入样例:
3 20
18 15 10
75 72 45
输出样例:
94.50
#include<bits/stdc++.h>
using namespace std;
struct MK{
double cnt;
double price;
double avg;
}mk[1005];
bool cmp(MK a,MK b)
{
return a.avg>b.avg;
}
int main()
{
int n,need;cin>>n>>need;
for(int i=0;i<n;i++)cin>>mk[i].cnt;
for(int i=0;i<n;i++)cin>>mk[i].price;
for(int i=0;i<n;i++)mk[i].avg=(1.0*mk[i].price)/mk[i].cnt;
sort(mk,mk+n,cmp);
int i;double tp=0.0;
for(i=0;need>mk[i].cnt && i<n;i++)
{
need-=mk[i].cnt;
tp+=mk[i].price;
}
if(need)tp+=need*mk[i].avg;
printf("%0.2f",tp);
return 0;
}