Result: Accepted
Time: 12ms
Memory: 1092kB
#include <stdio.h>
#include <stdlib.h>
struct student{
char name[31];
int core1;
int core2;
int total;
};
int comp (const void *p, const void *q){
return ((struct student * )q)->total - ((struct student * )p)->total;
}
int main (void){
int n;
scanf ("%d", &n);
while (n--){
int t;
scanf ("%d", &t);
struct student stu[t];
for (int i = 0; i < t; ++i){
scanf ("%s %d %d", &stu[i].name, &stu[i].core1, &stu[i].core2);
stu[i]. total = stu[i].core1 + stu[i].core2;
}
qsort(stu, t, sizeof(struct student), comp);
for (int i = 0; i < t; ++i)
printf("%s\n", stu[i].name);
}
return 0;
}