题目链接
一开始审错题了,以为只能取全部或者一半的库存,被样例误导了,能取部分库存那么就计算月饼的单价贪心就好了。
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
struct Moon{
double num;
double price;
}moons[1005];
bool cmp(Moon a,Moon b){
return a.price>b.price;
}
int main()
{
int N,D;
cin >> N >> D;
for(int i=0;i<N;i++){
cin >> moons[i].num;
}
for(int i=0;i<N;i++){
double p;
cin >> p;
moons[i].price=p/moons[i].num;
}
sort(moons,moons+N,cmp);
double ans=0;
for(int i=0;i<N;i++){
if(moons[i].num>=D){
ans+=D*moons[i].price;
break;
}else{
ans+=moons[i].num*moons[i].price;
D-=moons[i].num;
}
}
printf("%.2f",ans);
return 0;
}