HDU1009 FatMouse' Trade 贪心

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std; const int MAX=1001; typedef struct { int f,j; double ans; }change;
change food[MAX]; double cmp(const change &a,const change &b) { return a.ans<b.ans; } int main() { int m,n,i; double max; while(scanf("%d%d",&m,&n)) { if(m==-1&&n==-1) break;
        max=0; for(i=0;i<n;i++) {
            scanf("%d%d",&food[i].j,&food[i].f);
            food[i].ans=(double)food[i].f/(double)food[i].j; }
        sort(food,food+n,cmp); for(i=0;i<n;i++) { if(m>=food[i].f) {
                max+=food[i].j;
                m-=food[i].f; } else {
                max+=((double)m/food[i].f)*food[i].j; break; } }
        printf("%.3f\n",max); } return 0; }

你可能感兴趣的:(HDU1009 FatMouse' Trade 贪心)