
2017-07-14 18:18:31
- writer:pprp
- 介绍:hdu1009
- 题目介绍,详见hdu1009
- 代码如下
#include <iostream>
#include <algorithm>
#include <cstdio>
#include<iomanip> using namespace std; const int maxn = ; class mouse
{
public:
int j;
int f;
int divide;
}; bool cmp(mouse m1,mouse m2)
{
if(m1.divide > m2.divide)
return true;
else
return false;
} int main()
{
int m,n; mouse mou[maxn];
while(cin >> m >> n && m != - && n != -)
{
double lp = ;
for(int i = ; i < n ; i++)
{
mou[i].f = ;
mou[i].j = ;
mou[i].divide = ;
} for(int i = ; i < n ; i++)
{
cin >> mou[i].j>>mou[i].f;
mou[i].divide = mou[i].j/mou[i].f;
} sort(mou,mou+n,cmp); for(int i = ; i <n ; i++)
{
if(m >= mou[i].f)
{
m -= mou[i].f;
lp += mou[i].j; }
else
{
lp += mou[i].j*(m/(double)mou[i].f);
}
}
printf("%.3f\n",lp);
} return ;
}