得之我幸,不得,我命。仅此而已。
学姐说呀,希望下次看到你的时候依然潇洒如故。(笑~)
我就是这么潇洒~哈哈。
感觉大家比我还紧张~
我很好的。真的
------------------------------------------------------分割线:“我真的很好啦”------------------------------------------------------
传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1109
直接贪心即可。
#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN=1024;
struct data
{
int j,f;
double rate;
}a[MAXN];
bool operator < (const data& a,const data& b)
{
return a.rate<b.rate;
}
int main()
{
int M,N;
while(scanf("%d%d",&M,&N), M!=-1 && N!=-1 )
{
for(int i=0;i<N;i++)
{
scanf("%d%d",&a[i].j,&a[i].f);
a[i].rate = (double) a[i].j /(double) a[i].f;
}
sort(a,a+N);
double sum=0;
for(int i=N-1;i>=0 && M>=0 ;i--)
{
if(M==0)
break;
else if( M >= a[i].f )
{
sum+= a[i].j;
M-=a[i].f;
}
else
{
sum+=M*a[i].rate;
M=0;
}
}
printf("%.3lf\n",sum);
}
}