贪心入门题
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
struct mn
{
double a,b,c;
} data[2002];
bool cmp( const mn &x,const mn &y)
{
return x.c>y.c;
}
int main()
{
double ans;
int m,n,k;
while(~scanf("%d%d",&m,&n))
{ ans=0;
if(m==-1&&n==-1) break;
for(int i=0; i<n; i++)
{
scanf("%lf %lf",&data[i].a,&data[i].b);
data[i].c=data[i].a/data[i].b;
}
sort(data,data+n,cmp);
// for(int i=0; i<n; i++)
// printf("%lf\n",data[i].c);
for(k=0; k<n; k++)
{
if(m>=data[k].b)
{
ans+=data[k].a;
m-=data[k].b;
}
else
{
ans+=(double)m*data[k].c;
break;
}
}
printf("%.3lf\n",ans);
}
return 0;
}