hdu1009 FatMouse' Trade

View Code
Problem : 1009 ( FatMouse' Trade )     Judge Status : Accepted
RunId : 5737621    Language : C++    Author : billforum
Code Render Status : Rendered By HDOJ C++ Code Render Version 0.01 Beta
#include <iostream>
 #include <algorithm>
 #include <stdio.h>

 using namespace std;
 
 const int N=1005;
 int java[N],food[N];
 double p[N];
 
 
 int main()
 {
     int m,n;
     double ans;
      while(scanf("%d %d",&m,&n)==2)
      {
          if(m==-1&&n==-1) break;
          ans=0;
          for(int i=0;i<n;i++)
          {
              scanf("%d %d",&java[i],&food[i]);
              p[i]=(java[i]*1.0)/food[i];
          }
          //sort(p,p+n,cmp);
          int j=-1;
          double mint;
          while(m>0)
          {
              j=-1;
              mint=0;
              for(int i=0;i<n;i++)
              {
                  if(p[i]>mint)
                      {
                          mint=p[i];
                          j=i;
                      }
              }
              if(j==-1) break;
              if(m>=food[j])
              {
                  m-=food[j];
                  ans+=java[j];
                  p[j]=0;
              }
              else
              {
                  ans+=m*p[j];
                  break;
              }
          }
         printf("%.3lf\n",ans);
      }
         return 0;
 }

  

posted @ 2012-04-09 18:23  wuzhibin  阅读(209)  评论(0编辑  收藏  举报