hdu1009贪心

来源:互联网 发布:网络新词语 编辑:程序博客网 时间:2024/04/28 07:12
#include <iostream>#include <algorithm>#include <cstdio>using namespace std;int M,N;typedef struct {       float J;       float F;       double Aver;}room;room Rooms[3001];int Cmp(const room a,const room b){    return a.Aver > b.Aver;}int main(){    while(cin>>M>>N,(M != -1)&&(N != -1))    {             for(int i = 0; i < N; i++)             {                     cin>>Rooms[i].J>>Rooms[i].F;                     Rooms[i].Aver = (Rooms[i].J)/(Rooms[i].F);             }                                    sort(Rooms,Rooms+N,Cmp);                          double sum = 0;             double res = 0;             int j = 0;             while(sum < M && j < N)             {                       if(Rooms[j].F < (M - sum))                       {                                   sum += Rooms[j].F;                                   res += Rooms[j].J;                       }                       else                       {                                   res += Rooms[j].Aver*(M - sum);                                   sum = M;                                   break;                       }                                              j++;             }             printf("%.3lf\n",res);    }    return 0;}