Note
Code:
#include<bits/stdc++.h>
using namespace std;
struct mooncake{
double price,amount;
};
bool cmp(mooncake a,mooncake b){
return a.price>b.price;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("data.txt","r",stdin);
#endif
int n;
double d,p,profit=0;
cin>>n>>d;
mooncake m[n];
for(int i=0;i<n;i++)
cin>>m[i].amount;
for(int i=0;i<n;i++){
cin>>p;
m[i].price=p/m[i].amount;
}
sort(m,m+n,cmp);
int i=0;
while(d>0){
if(d<m[i].amount){
profit+=d*m[i].price;
break;
}
else{
profit+=m[i].amount*m[i].price;
d-=m[i].amount;
i++;
}
}
printf("%.2lf",profit);
return 0;
}