标签:
Description
Input
Output
Sample Input
Sample Output
#include <stdio.h> #include <algorithm> using namespace std; int n,u; double m,ans; struct room { double j,f,p; } r[1005]; int cmp(room a,room b) { return a.p>b.p; } int main() { while(scanf("%lf%d",&m,&n)&&n!=-1&&m!=-1) { for(int i=0;i<n;i++) scanf("%lf%lf",&r[i].j,&r[i].f), r[i].p=r[i].j/r[i].f; sort(r,r+n,cmp); u=ans=0; while(m&&u<n) { if(r[u].f>m) ans+=m*r[u].p,m=0; //剩下的猫粮不够把这个房间的咖啡豆换过来,那就能换多少换多少 else ans+=r[u].j,m-=r[u].f; //够的话,这间房子全部咖啡豆换过来 u++; } // while(m>=r[u].f&&u<n) //换种写法 // { // ans+=r[u].j; // m-=r[u].f; // u++; // } // if(u!=n) ans+=m*r[u].p; printf("%.3lf\n",ans); } return 0; }
标签:
原文地址:http://www.cnblogs.com/flipped/p/5183271.html