#include<cmath>
#include<string>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long LL;
struct mooncake {
double size,total,price;
bool operator < (const mooncake& a) const {
return price > a.price;
}
};
int main() {
int n,i;
double m,money=0;
mooncake A[1010];
scanf ("%d %lf",&n,&m);
for (i=0; i<n; i++) {
scanf ("%lf",&A[i].size);
}
for (i=0; i<n; i++) {
scanf ("%lf",&A[i].total);
A[i].price = A[i].total/A[i].size;
}
sort (A,A+n);
i=0;
while ( (m>0) && (i<n) ) {
if (m>=A[i].size) {
m -= A[i].size;
money += A[i].total;
i++;
} else {
money += m*A[i].price;
m=0;
}
}
printf ("%.2lf\n",money);
return 0;
}
L2-003 月饼
最新推荐文章于 2022-03-21 15:53:10 发布