老鼠换猫粮
#include <iostream>
#include <algorithm>
#include <iomanip>
using namespace std;
struct house
{
double num;
double price;
double avr;
}houses[1001];
bool cmp(house a,house b)
{
return a.avr>b.avr;
}
int main()
{
int m,n;
while(cin>>m>>n)
{
if(m==-1&&n==-1)
break;
for(int i=0;i<n;i++)
{
cin>>houses[i].num>>houses[i].price;
houses[i].avr=houses[i].num/houses[i].price;
}
sort(houses,houses+n,cmp);
double sum=0;
for(int i=0;i<n;i++)
{
if(m<houses[i].price)
{
sum+=m*houses[i].avr;
break;
}
sum+=houses[i].num;
m-=houses[i].price;
}
cout<<fixed<<setprecision(3)<<sum<<endl;
}
return 0;
}