对于输入的月饼,进行计算其每1万吨的价格,再根据单价对月饼进行排序(从高到低排序)。然后首先卖出单价高的月饼,依次往后卖,得到一个最大收益。
#include<stdio.h>
int main()
{
int b,c;
double n,d,e,number[1000],worth[1000],a[1000],rate=0;
scanf("%lf %lf",&n,&d);
for(b=0;b<n;b++)
scanf("%lf",&number[b]);
for(b=0;b<n;b++){
scanf("%lf",&worth[b]);
a[b]=worth[b]/number[b];
}
for(b=0;b<n-1;b++){
for(c=0;c<n-1-b;c++){
if(a[c]<a[c+1]){
e=a[c];a[c]=a[c+1];a[c+1]=e;
e=number[c];number[c]=number[c+1];number[c+1]=e;
e=worth[c];worth[c]=worth[c+1];worth[c+1]=e;
}}}
b=0;
while(d&&b<n){
if(number[b]<=d){
d=d-number[b];
rate=rate+worth[b];
b++;
}
else{
rate=rate+(d/number[b])*worth[b];
d=0;
}
}
printf("%.2lf",rate);
return 0;
}