http://acm.hdu.edu.cn/showproblem.php?pid=1009
#include<iostream>
using namespace std;
const double max==10000000000000000;
int main(void)
{
int M,N;
while(cin>>M>>N&&(N!=-1||M!=-1))
{
int *a=new int[N];
int *b=new int[N];
double *c=new double[N];
for(int i=0;i<N;i++)
{
cin>>a[i]>>b[i];
if(b[i]!=0)
c[i]=1.0*a[i]/b[i];
else
c[i]=max;
}
double t;
for(i=0;i<N;i++)
{
for(int j=i+1;j<N;j++)
{
if(c[i]<c[j])
{
t=c[i];c[i]=c[j];c[j]=t;
t=a[i];a[i]=a[j];a[j]=t;
t=b[i];b[i]=b[j];b[j]=t;
}
}
}
double sum=0;
for(i=0;i<N;i++)
{
if(M>=b[i])
{
sum+=a[i];
M-=b[i];
}
else
{
sum+=c[i]*M;
break;
}
}
cout.setf(ios::fixed);
cout.precision(3);
cout<<sum<<endl;
delete []a;
delete []b;
delete []c;
}
return 0;
}