pengkingli 2020-03-28
2 50 4 10 100 50 30 7 34 87 100 10000 5 1 43 43 323 35 45 43 54 87 43
171.93 508.00
#include <bits/stdc++.h>
using namespace std;
struct Node{
double n,v;
double q;
}a[105];
bool cmp(Node a,Node b){
return a.q>b.q;
}
int main() {
int k,s,w;
cin>>k;
while(k--){
cin>>w>>s;
for(int i=0;i<s;i++){
cin>>a[i].n>>a[i].v;
a[i].q=a[i].v/a[i].n;
}
double ans=0;
sort(a,a+s,cmp);
int i=0;
while(w>0){
if(w-a[i].n>0){
ans+=a[i].v;
w-=a[i].n;
i++;
}
else {
ans+=a[i].q*w;
w=0;
}
}
printf("%.2lf\n",ans);
}
return 0;
}