/*本题需要注意的是,除了种类和最大需求量是整型数据,其他数据皆是小数,
这意味着库存量也是小数而不是正整数,这个点是测试点2所要求的,如果不注意数据类型,很容易被卡住。*/
#include <stdio.h>
struct yuebin{ //注意必须全是double不然测试点2过不去
double AllPrice;
double AllTon;
double AvrPrice;
}Y[1002];
void sort(struct yuebin Y[],int N);
int main(){
int N,i;
double D;
scanf("%d%lf",&N,&D);
for(i=0;i<N;i++){
scanf("%lf",&Y[i].AllTon);
}
for(i=0;i<N;i++){
scanf("%lf",&Y[i].AllPrice);
}
//计算平均价格
for(i=0;i<N;i++){
Y[i].AvrPrice = Y[i].AllPrice*1.0/Y[i].AllTon;
}
sort(Y,N);
double money = 0;
for(i=0;i<N;i++){
if(Y[i].AllTon<D){
money += Y[i].AllPrice;
D = D-Y[i].AllTon;
}else{
money += D*Y[i].AvrPrice;
D=0;
break;
}
}
printf("%.2f",money);
}
void sort(struct yuebin Y[],int N){
int i,j;
for(i=0;i<N;i++){
for(j=0;j<N-i-1;j++){
if(Y[j].AvrPrice<Y[j+1].AvrPrice){
Y[1002] = Y[j];
Y[j] = Y[j+1];
Y[j+1] = Y[1002];
}
}
}
return;
}
L2-003 月饼 (25分)
最新推荐文章于 2022-01-21 22:14:50 发布