问题 22856 --排队

22856: 排队

时间限制: 1 Sec  内存限制: 128 MB
提交: 6  解决: 0
[提交][状态][讨论版][命题人:]

题目描述

按身高排队是我们最常用的一种排队方法,一伙小朋友已经非常厌倦了这种排队方式,

这次他们打算按每个人的姓名排队,但如果按照姓名的字典序进行排队似乎有点麻烦,所以

他们找了一种比较简单的排队方法:根据姓名的长度进行排队,姓名长的排在最前面,姓

名短的排在最后面。

姓名的长度他们有这样的约定:每个人的姓名只能由aASCII 码为 97)到z  ASCII

码为 122)这 26 个小写英文字母构成,姓名的长度就是姓名中字母的总个数。

由于小朋友人数比较多,请根据他们的排队方法,编程帮助他们排队吧!

输入

输入文件 queue.in:输入从文件中读取,输入共 n+1 行。

1 行是一个整数 n1≤n≤15000),表示总共有 n 个小朋友参加排队(编号为 1n)。

2 行到第 n+1 行,每行一个字符串,其中第 i+1 行表示第 i 个小朋友的姓名,数据保

证每个小朋友都有姓名,并且姓名的长度不超过 255

输出

输出文件 queue.out:结果输出到文件中。

输出共 n 行,表示经过排队后的小朋友的姓名情况,姓名长的先输出,姓名短的后输出。

注意,当小朋友的姓名长度一样时,输出的顺序同输入的顺序(参考样例解释)。

样例输入

3
aoteman
guaishou
jiqiren

样例输出

guaishou
aoteman
jiqiren
【样例解释】 
有 3 个小朋友参加了排队,第 1 个小朋友的姓名长度为 7,第 2 个小朋友的姓名长度为
8,第 3 个小朋友的姓名长度为 7。因为第 2 个小朋友的姓名最长,所以最先输出,第 1 个
小朋友和第 3 个小朋友的姓名长度都为 7,但在输入中,小朋友“aoteman”在小朋友“jiqiren”
的前面,所以先输出“aoteman”,然后输出“jiqiren”。 

提示



【数据范围约定】



60%的输入数据保证 1≤n≤1000,且每个小朋友的姓名长度不超过 100



80%的输入数据保证 1≤n≤8000,且每个小朋友的姓名长度不超过 255



100%的输入数据保证 1≤n≤15000,且每个小朋友的姓名长度不超过 255






 

来源

 

[提交][状态]