#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
typedef struct{
float de;
float total;
float pr;
}mooncake;
int cmp(const void *a,const void *b){
mooncake *pa= (mooncake*)a;
mooncake *pb= (mooncake*)b;
if(pa->pr>pb->pr)
return -1;
else
return 1;
}
int main(){
int n,d,got=0;
float earn=0;
scanf("%d %d",&n,&d);
mooncake c[n];
for(int i=0;i<n;i++){
scanf("%f",&c[i].de);
}
for(int i=0;i<n;i++){
scanf("%f",&c[i].total);
c[i].pr=c[i].total/c[i].de;
}
qsort(c,n,sizeof(mooncake),cmp); //单价排序
for(int i=0;i<n;i++){
if(got<d){
if(got+c[i].de>d){
earn+=(d-got)*c[i].pr;
got=d;
}
else{
earn+=c[i].de*c[i].pr;
got+=c[i].de;
}
}
}
printf("%.2f\n",earn);
return 0;
}
1020 月饼 (25 分)
最新推荐文章于 2024-04-01 21:51:26 发布