HDU 1009 FatMouse' Trade (模拟)

题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=16335

代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>

using namespace std;

struct node
{
    double x,y;
}q[1005];

int com(node a,node b)
{
    return (a.x/a.y)>(b.x/b.y);
}
int main()
{
    int m,n;
    while(~scanf("%d%d",&m,&n))
    {
        if(m==-1&&n==-1)
            return 0;
        for(int i=0;i<n;i++)
        {
            scanf("%lf%lf",&q[i].x,&q[i].y);
        }
        sort(q,q+n,com);
        double ans=0.0;
        for(int i=0;i<n;i++)
        {
            if(m>q[i].y)
            {
                ans=ans+q[i].x;
                m=m-q[i].y;
            }
            else
            {
                ans=ans+m*(q[i].x/q[i].y);
                break;
            }
        }
        printf("%.3f\n",ans);
    }
}


你可能感兴趣的:(HDU 1009 FatMouse' Trade (模拟))