#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct Cake{
double amount;
double total;
double price;
}list[1000];
int cmp(Cake &A,Cake &B){
return A.price>B.price;
}
int main(){
int N,D;
cin>>N>>D;
for(int i=0;i<N;i++){
cin>>list[i].amount;
}
for(int i=0;i<N;i++){
cin>>list[i].total;
list[i].price=list[i].total/list[i].amount;
}
sort(list,list+N,cmp);
double benefit=0;
for(int i=0;i<N;i++){
if(D>=list[i].amount){
benefit+=list[i].total;
D-=list[i].amount;
}
else{
benefit+=list[i].price*D;
break;
}
}
printf("%.2lf",benefit);
return 0;
}
PAT(Basic Level)_1020_月饼
最新推荐文章于 2024-07-14 11:09:39 发布
本文介绍了一个用于计算最优购买策略的算法。该算法通过输入不同蛋糕的数量和总价,计算出在有限预算内能获得的最大价值。它首先计算每种蛋糕的单位价格,并按单位价格从高到低排序,然后依次选择性价比最高的蛋糕直到预算用完。
摘要由CSDN通过智能技术生成