#include<iostream>
#include<cstdio>
using namespace std;
struct work
{
double n,v;
double p;
};
double ans[1000];
work a[1000];
int main()
{
double sum=0;
int n;
int s=0;
int w;
int i,j,k;
int m;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&w);
scanf("%d",&m);
for(j=1;j<=m;j++)
{
scanf("%lf%lf",&a[j].n,&a[j].v);
a[j].p=a[j].v/a[j].n;
}
for(j=m-1;j>=1;j--)
{
for(k=1;k<m;k++)
{
if(a[k].p<a[k+1].p)
swap(a[k],a[k+1]);
}
}
j=1;
while(w!=0)
{
if(j>m)break;
if(a[j].n<w)
{
w=w-a[j].n;
sum=sum+a[j].v;
j++;
}
else if(a[j].n>w)
{
sum=sum+a[j].p*w;
w=0;
}
}
s++;
ans[s]=sum;
sum=0;
}
for(i=1;i<=s;i++)
printf("%.2lf\n",ans[i]);
return 0;
}
1225
最新推荐文章于 2024-07-12 10:12:29 发布