#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
const int M=1100;
typedef struct{
double f;
double JaveBean;
double greedy;
}Mouse;
Mouse room[M];
bool cmp(Mouse a,Mouse b)
{
return a.greedy>b.greedy;
}
int main()
{
int m,n;
while(cin>>m>>n&&(m!=-1&&n!=-1))
{
double ans=0;
for(int i=0;i<n;i++)
{
cin>>room[i].JaveBean>>room[i].f;
room[i].greedy = room[i].JaveBean/room[i].f; //第i件room中 单位f能换多少Javebean
}
sort(room,room+n,cmp);
int k=0;
while(m&&k<n)
{
if(m>=room[k].f)
{
ans+=room[k].JaveBean;
m-=room[k].f; // 先换利率大的 能换全部换
}
else
{
ans+=m*room[k].greedy; //
m=0;
}
k++;
}
printf("%.3lf\n",ans);
}
return 0;
}
hdu 1009 贪心
最新推荐文章于 2022-11-19 08:50:17 发布