努力ing
你浪费的今天是昨天死去的人所渴望的明天!!!

因为先没有判断i与n的大小,一直错着,郁闷的不行,蛋都碎了……

#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
struct node{
 int java;
 int food;
 double agv;
};
bool cmp(node a,node b)
{
 return a.agv>b.agv;
}
int main()
{
 int i;
 int m,n;
 node fat[1005];
 while(cin>>m>>n&&(m+n)!=-2)
 {
  for(i=0;i<n;i++)
  {
   cin>>fat[i].java>>fat[i].food;
   fat[i].agv=(double)fat[i].java/fat[i].food;
  }
  sort(fat,fat+n,cmp);
  i=0;
  double sum=0.0;
 /* for(i=0;i<n&&m>0;i++)
  {
   if(m>=fat[i].food)
   {
    sum+=fat[i].java;
    m-=fat[i].food;
   }
   else {
    sum+=m*fat[i].agv;
    m=0;
   }
  }*/
  while(m>0&&i<n)  //先要判断i与n的大小
  {
   if(m>=fat[i].food)
   {
    sum+=fat[i].java;
    m-=fat[i].food;
   }
   else {
    sum+=m*fat[i].agv;
    break;
   }
   i++;
  // if(i==n) break;
  }
  cout<<fixed<<setprecision(3)<<sum<<endl;
 }
 return 0;
}

posted on 2013-05-10 21:21  努力ing  阅读(106)  评论(0)    收藏  举报