#include<cstdio>
#include<string>
#include<algorithm>
#include<iostream>
using namespace std;
struct Cake{
double mount,total,ave;
}C[1005];
bool cmp(Cake c1, Cake c2){
return c1.ave > c2.ave;
}
int main(){
int N,D;
cin>>N>>D;
for(int i=0;i<N;i++){ //库存量
cin>>C[i].mount;
}
for(int i=0;i<N;i++){ //总售价
cin>>C[i].total;
C[i].ave = C[i].total*1.0/C[i].mount; //单位重量的价格
}
sort(C,C+N,cmp);
double ans=0;
for(int i=0;i<N;i++){
if(D >= C[i].mount){
ans += C[i].total;
D -= C[i].mount;
}else if(D>0){
ans += C[i].ave * D;
D = 0;
break;
}
}
printf("%.2f\n",ans);
return 0;
}
L2-003 月饼 (25 分)
最新推荐文章于 2020-09-20 19:08:26 发布