#include <string.h>
#include <stdio.h>
#include <algorithm>
#include <vector>
using namespace std;
struct mooncake
{
double totalw;
double totalp;
double price;
}A[1010];
bool cmp(mooncake a, mooncake b)
{
return a.price>b.price;
}
int N;
double D;
int main()
{
scanf("%d %lf",&N,&D);
for(int i=0;i<N;i++)
{
scanf("%lf",&A[i].totalw);
}
for(int i=0;i<N;i++)
{
scanf("%lf",&A[i].totalp);
A[i].price=A[i].totalp/A[i].totalw;
}
sort(A,A+N,cmp);
double sum=0;
for(int i=0;i<N;i++)
{
if(A[i].totalw<=D)
{
sum+=A[i].totalp;
D-=A[i].totalw;
}
else
{
sum+=A[i].price*D;
D=0;
}
if(D==0)
break;
}
printf("%.2f",sum);
return 0;
}
PAT甲1070 Mooncake(25 分)
最新推荐文章于 2020-11-28 21:25:07 发布