#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<vector>
#include<algorithm>
#include<iostream>
#include<time.h>
using namespace std;
struct node
{
int Javabean;
int catfood;
}room[1005];
bool cmp(node a,node b)
{
return (double)a.Javabean / a.catfood > (double)b.Javabean / b.catfood;
}
int main()
{
int M, N;
while (cin >> M >> N, N != -1 && M != -1)
{
int i, j;
for (i = 1; i <= N; i++)
{
cin >> room[i].Javabean >> room[i].catfood;
}
sort(room + 1, room + N+1, cmp);
double sum = 0;
for (i = 1; i <= N;i++)
{
if (M >= room[i].catfood)
{
sum += room[i].Javabean;
M -= room[i].catfood;
}
else if (M!=0)
{
sum += (double)room[i].Javabean / room[i].catfood*M;
M = 0;
}
}
printf("%.3f\n", sum);
}
return 0;
}
HDU 1009(贪心)
最新推荐文章于 2019-08-15 13:49:29 发布