#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; } }

评论