#include<bits/stdc++.h>
using namespace std;
int n,need;
struct Value
{
double a,b,v;
}val[1010];
bool cmp(Value x,Value y)
{
return x.v>y.v;
}
int main()
{
cin>>n>>need;
for(int i=0;i<n;i++)
{
scanf("%lf",&val[i].a);//%f和double不好用
}
for(int i=0;i<n;i++)
{
scanf("%lf",&val[i].b);//总售价
val[i].v=(val[i].b*1.0)/val[i].a;
}
sort(val,val+n,cmp);
int i=0;
double mon=0;
while(need&&i<n)//漏了i<n
{
if(need>=val[i].a)
{
need-=val[i].a;
mon+=val[i].b;
i++;
}
else
{
mon+=val[i].v*need;
break;
}
}
printf("%.2f",mon);
return 0;
}
![]()