您的位置:首页 > 其它

谨以此水题作为我贪心的开始,并没有其他的意思……

2015-11-27 18:50 288 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1009

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <time.h>
#include <string>
#include <map>
#include <stack>
#include <vector>
#include <set>
#include <queue>
#define M  10000
#define maxn (1000 + 10)
#define pi acos(-1.0)
using namespace std;
struct room
{
double JavaBeans;
double Food;
double Average;
};
room op[maxn];
bool cmp(room a,room b)
{
return a.Average > b.Average;
}
int main()
{
//    freopen("in.txt","r",stdin);
//    freopen("in.txt","r",stdin);
double m,n,sum = 0;
while(scanf("%lf%lf",&m,&n) && !(m == -1 && n == -1))
{
sum = 0;
for(int i = 0; i < n; i ++)
{
scanf("%lf%lf",&op[i].JavaBeans,&op[i].Food);
op[i].Average = op[i].JavaBeans / op[i].Food;
}
sort(op,op + (int)n,cmp);
for(int i = 0; i < n; i ++)
{
if(m > op[i].Food)
{
sum = sum + op[i].JavaBeans;
m = m - op[i].Food;
}
else
{
sum = sum + m / op[i].Food * op[i].JavaBeans;
m = 0;
}
}
printf("%.3lf\n",sum);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: