#include <iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
struct yuebing
{
double sum1;
double sum2;
double d;
}y[1010];
bool cmp( yuebing a,yuebing b)
{
if(a.d!=b.d) return a.d>b.d;
else return a.d<b.d;
}
int main()
{
int n,d;
double sum=0,z=0;
scanf("%d%d",&n,&d);
for(int i=0;i<n;i++)
{
scanf("%lf",&y[i].sum1);
}
for(int i=0;i<n;i++)
{
scanf("%lf",&y[i].sum2);
y[i].d=y[i].sum2/y[i].sum1;
}
sort(y,y+n,cmp);
for(int i=0;sum<d&&i<n;i++)
{
sum+=y[i].sum1;
if(sum>d)
{
sum=sum-y[i].sum1;
z+=y[i].d*(d-sum);
break;
}
z+=y[i].sum2;
}
printf("%.2f\n",z);
return 0;
}
PATB1020
最新推荐文章于 2022-04-29 19:48:10 发布