Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/131072 K (Java/Others) |
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
const int maxn = 260010;
int p,n,ans,now;
int save[maxn];
bool compare(int a,int b){
return a>b;
}
int main(){
int t,i,j,a,b,tot;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
p = 0;
for(i=1;i<=n;i++){
scanf("%d%d",&a,&b);
for(j=1;j<=b;j++){
save[++p] = a;
}
}
sort(save+1, save+1+p,compare);
tot = p;
int last;
ans = 0;
p = 0;
while(1){
last = ans;
ans += save[++p];
for(i=1;i<p;i++){
ans += save[i];
}
if(ans<last){
ans = last;
break;
}
if(p==tot){
break;
}
}
printf("%d\n",ans);
}
return 0;
}