#include <iostream>
#include <algorithm>
#include <fstream>
#include <iomanip>
using namespace std;
#define MAX 1000
struct room
{
int f,j;
double rate;
bool operator<(room r)
{
return rate>r.rate;
}
};
room rooms[MAX];
int main()
{
int m=-1,n=-1;
//ifstream cin("input.txt");
room r;
int index;
double sum;
while (cin>>m>>n && m!=-1 && n!=-1)
{
index=0;
sum=0.0;
for(int i=0;i<n;i++)
{
cin>>r.j>>r.f;
r.rate=r.j*1.0/r.f;
rooms[i]=r;
}
sort(rooms,rooms+n);
for (int i=0;i<n;i++)
{
if(rooms[i].f<m)
{
sum+=rooms[i].j;
m=m-rooms[i].f;
}
else
{
sum+=m*rooms[i].rate;
m=0;
}
}
cout<<setprecision(3)<<setiosflags(ios::fixed | ios::showpoint)<<sum<<endl;
m=n=-1;
}
return 0;
}
HD1009 经典贪心
最新推荐文章于 2022-10-23 19:19:47 发布