Result: Accepted
Time: 4ms
Memory: 1120kB
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
struct wh{
char name[25];
int c;
};
int main(){
int t;
scanf("%d",&t);
while(t--){
int n,i,j,pass,k;
struct wh a[105];
int b[105]={0};
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%s %d",&a[i].name,&a[i].c);
b[i]=strlen(a[i].name);
}
for(pass=1;pass<n;++pass){
for(i=0;i<n-pass;++i){
if(a[i].c<a[i+1].c){
for(k=0;k<b[i];k++){
a[101].name[k]=a[i].name[k];
}
for(k=0;k<b[i+1];k++){
a[i].name[k]=a[i+1].name[k];
}
for(k=0;k<b[i];k++){
a[i+1].name[k]=a[101].name[k];
}
b[101]=b[i];
b[i]=b[i+1];
b[i+1]=b[101];
a[101].c=a[i].c;
a[i].c=a[i+1].c;
a[i+1].c=a[101].c;
}
}
}
for(i=0;i<n;i++){
for(j=0;j<b[i];j++){
printf("%c",a[i].name[j]);
}
printf("\n");
}
}
}