题目描述

分析:
经典的贪心问题,每次选出单价最高的月饼即可
#include<iostream>
#include<algorithm>
using namespace std;
struct mooncake{
double store;
double sell;
double price;
}m[1005];
bool cmp(mooncake a,mooncake b){
return a.price>b.price;
}
int main(){
int n,d;
cin>>n>>d;
for(int i=0;i<n;i++){
cin>>m[i].store;
}
for(int i=0;i<n;i++){
cin>>m[i].sell;
m[i].price=m[i].sell/m[i].store;
}
sort(m,m+n,cmp);
double money=0;
for(int i=0;i<n;i++){
if(m[i].store<d){
d-=m[i].store;
money+=m[i].sell;
}
else{
money+=m[i].price*d;
break;
}
}
printf("%.2f",money);
}