#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <fstream.h>
ifstream f("mouse.in");
#define cin f
int comp(const void *m,const void *n)
{
return ((int *)n)[0]/((int *)n)[1]-((int *)m)[0]/((int *)m)[1];
}
int main()
{
int m,n;
int a[1000][2];
int i,j;
while(cin>>m>>n)
{
if (m==-1 && n==-1)
return 0;
for(i=0;i<n;i++)
cin>>a[i][0]>>a[i][1];
qsort(a,n,2*sizeof(int),comp);
float k=(float)m;
i=0;
float Msum=0.0;
//for(i=0;i<n;i++)
//cout<<a[i][0]<<" "<<a[i][1]<<endl;
//i=0;
while(1)
{
if(k-(float)a[i][1]>0.00001)
{
Msum=Msum+a[i][0];
//i++;
k=k-(float)a[i][1];
i++;
}
else
{
Msum=Msum+k*((float)((float)a[i][0]/a[i][1]));
break;
}
}
//cout<<Msum<<endl;
printf("%0.3f\n",Msum);
/*r(i=0;i<n;i++)
for(j=0;j<n-1-i;j++)
if (a[j][0]/a[j][1]-a[j+1][0]/a[j+1][1]>0)
{
int a1=a[j][0];
int a2=a[j][1];
a[j][0]=a[j+1][0];
a[j][1]=a[j+1][1];
a[j+1][0]=a1;
a[j+1][1]=a2;
}
//for(i=0;i<n;i++)
//cout<<a[i][0]<<" "<<a[i][1]<<endl;
float Msum=0.0;
float yu=(float)m;
for(i=n-1;i>=0;i--)
{
if(yu-a[i][1]>0)
{
Msum=Msum+a[i][0];
yu=yu-a[i][1];
}
else
{
Msum=Msum+yu*((float)(a[i][0]/a[i][1]));
break;
}
}
cout<<yu<<endl;
} */
// for(i=0;i<n;i++)
//cout<<a[i][0]<<" "<<a[i][1]<<endl;
}
}
正文
jnu(FatMouse' Trade)2005-08-18 16:03:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/elva6401/3918.html
阅读(2270) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论