注意精度问题即可
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
const int maxn=1001;
int main()
{
int t;
double n,m,a[1000][2],temp;
while(cin>>t){
while(t--){
cin>>n>>m;
for(int i=0;i<m;i++)
for(int j=0;j<2;j++)
cin>>a[i][j];
for(int i=0;i<m;i++){
for(int j=i+1;j<m;j++){
if(a[i][0]>a[j][0]){
temp=a[i][0];
a[i][0]=a[j][0];
a[j][0]=temp;
temp=a[i][1];
a[i][1]=a[j][1];
a[j][1]=temp;
}
}
}
double cnt=0;
for(int i=0;i<m;i++){
if(n/a[i][0]<a[i][1]){
cnt+=(int)(n/a[i][0]);
if(n-(int)(n/a[i][0])*a[i][0]!=0)
cnt+=((n-(int)(n/a[i][0])*a[i][0])/a[i][0]);
break;
}
else{
cnt+=a[i][1];
n-=a[i][0]*a[i][1];
}
}
printf("%.2lf\n",cnt);
}
}
return 0;
}