hdu 1009 FatMouse' Trade

来源:互联网 发布:三菱plc编程代码 编辑:程序博客网 时间:2024/05/17 17:16

直接按比例最大排序就最大值就行了。

#include<stdio.h>#include<iostream>#include<algorithm>using namespace std;struct node{   int x,y;}a[1001];int cmp(node xx,node yy){    return xx.x*1.0/xx.y>yy.x*1.0/yy.y;}int main(){   int n,m;   while(~scanf("%d%d",&m,&n)){      if(n==-1&&m==-1) break;      double ans=0;      for(int i=0;i<n;i++){         scanf("%d%d",&a[i].x,&a[i].y);      }      sort(a,a+n,cmp);      for(int i=0;i<n;i++){         if(m<=0) break;         if(m>=a[i].y){            m-=a[i].y;ans+=a[i].x;         }         else{//printf("%d %d\n",a[i].x,a[i].y);            ans+=a[i].x*1.0*(m*1.0/a[i].y);            m-=m;         }      }//printf("%d %lf\n",m,ans);      printf("%.3lf\n",ans);   }   return 0;}


0 0