1 #include<cstdio>
2 #include<iostream>
3 #include<cstring>
4 #include<algorithm>
5 using namespace std;
6 const int maxn = 120;
7 char str[maxn];
8
9 struct node{
10 char s[120];
11 int year;
12 }p[maxn];
13
14 int cmp(node A, node B)
15 {
16 return A.year > B.year; //不要忽略这个细节,可能你会习惯性的用小于号。
17 }
18
19 int main()
20 {
21 int t, n;
22 scanf("%d", &t);
23 while(t --)
24 {
25 scanf("%d", &n);
26 getchar(); //吃掉回车
27 for(int i = 0; i < n; i++)
28 {
29 gets(str); //明显用gets(),scanf()连空格都不吃
30 int len = strlen(str);
31 p[i].year = 0;
32 for(int j = len - 4; j <= len - 1; j++) p[i].year = 10 * p[i].year + str[j] - '0';
33 for(int j = 0; j < len - 5; j++) p[i].s[j] = str[j];
34 p[i].s[len-5] = '\0'; //极为关键的一步,必须标记字符串结束标志,不然会多输出一些字符。
35 }
36 sort(p, p + n, cmp);
37 for(int i = 0; i < n; i++) printf("%s\n", p[i].s);
38 }
39 return 0;
40 }