B1020 月饼 (25分)

 

#include<cstdio>
#include<algorithm>
using namespace std;

struct moodcake{
    double store;
    double sell;
    double price;
    
}cake[1010];

bool cmp(moodcake a,moodcake b)//注意这类填写的是什么,不是cake[].price, cake[].price
{
    return a.price>b.price;
 } 
int main()
{

    int num;
    double need;
    scanf("%d%lf",&num,&need);

    for(int i=0;i<num;i++)
    {
        scanf("%lf",&cake[i].store);    
    }    
    for(int i=0;i<num;i++){
        scanf("%lf",&cake[i].sell);
    }
    //计算单价并排序
     for(int i=0;i<num;i++)
     {
         cake[i].price=cake[i].sell/cake[i].store;
     }
     
     
     sort(cake,cake+num,cmp);//初始都是从小到大   
     
     //收益
     double ans=0;
     
     for(int i=0;i<num;i++)
     {
         if(cake[i].store<=need)
         {
         
             need=need-cake[i].store;
            ans=ans+cake[i].sell;

         }
         else
         {
             ans=ans+need*cake[i].price;
        //     need=0;
         break;    
         }
         
     }
     printf("%.2f\n",ans);
     return 0;
}

 

posted @ 2020-07-16 14:12  我来到,我看见  阅读(128)  评论(0)    收藏  举报