#include using namespace std; vectorve; int n,m,k,l,s,t,r,T,ans; struct st { char name[105]; int v; }cla[105]; priority_queueq; int cmp(st x,st y) { return strcmp(x.name,y.name)==-1?1:0; } int main() { int i,j; cin>>T; while(T--) { cin>>n; for(i=1;i<=n;i++) { getchar(); scanf("%s",cla[i].name); cin>>cla[i].v; } sort(cla+1,cla+1+n,cmp); /*for(i=1;i<=n;i++) puts(cla[i].name);*/ ans=0; q.push(cla[1].v); for(i=2;i<=n;i++) { if(strcmp(cla[i].name,cla[i-1].name)==0) q.push(cla[i].v); else { for(k=1;k<=2;k++) if(!q.empty()) { ans+=q.top(); // printf("t=%d\n",q.top()); q.pop(); } while(!q.empty()) q.pop(); q.push(cla[i].v); } } for(k=1;k<=2;k++) if(!q.empty()) { ans+=q.top(); // printf("t=%d\n",q.top()); q.pop(); } while(!q.empty()) q.pop(); printf("%d\n",ans); } return 0; }