//测试点3所有库存总和小于我的需求量
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
double s,a,b;
}thing;
thing it[1001];
int cmp(const void *a,const void *b)
{
return ((thing *)b)->s>((thing *)a)->s;
}
void main()
{
int i;
int N,D;
double sum=0;
scanf("%d%d",&N,&D);
for(i=0;i<N;i++)scanf("%lf",&it[i].a);
for(i=0;i<N;i++){
scanf("%lf",&it[i].b);
it[i].s=it[i].b/it[i].a;
}
qsort(it,N,sizeof(thing),cmp);
for(i=0;D>0;i++){
if((double)D>=it[i].a){
sum+=it[i].b;
if(i==N-1){
break;
}
}else{
sum+=D*it[i].s;
}
D=(double)D-it[i].a;
}
printf("%.2f\n",sum);
}
PTA1020 月饼 (25 分)
最新推荐文章于 2023-01-10 22:10:44 发布