A problem of sorting
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 565 Accepted Submission(s): 257
Total Submission(s): 565 Accepted Submission(s): 257
提示:注意名字中包括空格,
Problem Description
There are many people's name and birth in a list.Your task is to print the name from young to old.(There is no pair of two has the same age.)
Input
First line contains a single integer
T≤100
which denotes the number of test cases.
For each test case, there is an positive integer n(1≤n≤100) which denotes the number of people,and next n lines,each line has a name and a birth's year(1900-2015) separated by one space.
The length of name is positive and not larger than 100 .Notice name only contain letter(s),digit(s) and space(s).
For each test case, there is an positive integer n(1≤n≤100) which denotes the number of people,and next n lines,each line has a name and a birth's year(1900-2015) separated by one space.
The length of name is positive and not larger than 100 .Notice name only contain letter(s),digit(s) and space(s).
Output
For each case, output
n
lines.
Sample Input
2 1 FancyCoder 1996 2 FancyCoder 1996 xyz111 1997
Sample Output
FancyCoder xyz111 FancyCoder
Source
Recommend
hujie | We have carefully selected several similar problems for you:
5431
5429
5427
5426
5425
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<vector>
#include<climits>
#include<iomanip>
#define LL long long
#define uing unsigned int
#define uLL unsigned LL
using namespace std;
const int INF =0x3f3f3f3f;
const double PI = acos(-1.0);
const double esp=1e-6;
struct node
{
int year;
char s[120];
}que[1010];
bool cmp(node x,node y)
{
return x.year>y.year;
}
int main()
{
int t,n,len;
char c[142];
scanf("%d",&t);
while(t--)
{
memset(que,0,sizeof(que));
scanf("%d%*c",&n);
for(int i=0;i<n;i++)
{
gets(c);
len=strlen(c);
for(int j=len-4;j<len;j++)
{
que[i].year=que[i].year*10+c[j]-'0';
}
for(int j=0;j<len-5;j++)
{
que[i].s[j]=c[j];
}
que[i].s[len-5]='\0';
}
sort(que,que+n,cmp);
for(int i=0;i<n;i++)
printf("%s\n",que[i].s);
}
return 0;
}