乙_1020 月饼 (25分)

问题描述:

 

 

总结:

 

忘记break;一直无法找见错误;

代码:

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <algorithm>
//#include <sstream>
//#include <cmath>
//#include <stack>
using namespace std;
struct mc{
double pr,num,one ; 
 
}m[1010];
bool cmp(mc a, mc b){
 
 return a.one>b.one ;
 
}
 

int main()
{
 int n ,d ;
     
 cin >> n >>  d;
 
for(int i=0;i<n;i++) 
    cin >>   m[i].num ;
for(int i=0 ; i<n;i++)    {
   cin >>  m[i].pr;  
  m[i].one = m[i].pr/m[i].num;          // 按单价排序
}
//for(int i=0 ; i<n;i++)    {
//   cout <<  m[i].one << " hh"<<  m[i].pr<< " hh"<< m[i].num <<endl;
//}
//
sort(m,m+n,cmp);

 double sum =0;
for(int i=0;i<n;i++){ 
  if((d-m[i].num)>0)  {
   sum += m[i].pr;
   d = d-m[i].num;
  }
  else {
   
   sum +=  d*m[i].one;
   break;                              // key
  }
}
 printf("%.2f",sum);
 
     return 0;
}

 

 

 

 

 

 

 

 

 

posted @ 2020-05-29 20:32  学啥都会  阅读(99)  评论(0编辑  收藏  举报