HDU 1009 FatMouse' Trade

 

http://acm.hdu.edu.cn/showproblem.php?pid=1009

无聊的贪心

View Code
#include <stdio.h>

#include <stdlib.h>

typedef struct L{

    int j,k;

    double w;

}L;

L kk[1001];

int cmp(const void*a,const void*b)

{

    L*c=(L*)a;

    L*d=(L*)b;

    return d->w > c->w ? 1 : -1 ;

}

int main()

{

    int m,n;

    while(scanf("%d%d",&m,&n))

    {

        if(m==-1 && n==-1)break;

        for(int i=0;i<n;i++)

        {

            scanf("%d%d",&kk[i].j,&kk[i].k);

            kk[i].w=kk[i].j*1.0/kk[i].k;

        }

        qsort(kk,n,sizeof(L),cmp);

        int sum=0;

        double ans=0;

        for(int i=0;i<n;i++)

        {

            sum+=kk[i].k;

            ans+=kk[i].j;

            if(sum>=m){

                ans-=(sum-m)*kk[i].w;

                break;

            }

        }

        printf("%.3lf\n",ans);

    }

    return 0;

}

 

你可能感兴趣的:(HDU)