#C07TL10P01. C07T.L10.实战训练十.题目1.排队

C07T.L10.实战训练十.题目1.排队

题目描述

按身高排队是我们最常用的一种排队方法,一伙小朋友已经非常厌倦了这种排队方式,这次他们打算按每个人的姓名排队,但如果按照姓名的字典序进行排队似乎有点麻烦,所以他们找了一种比较简单的排队方法:根据姓名的长度进行排队,姓名长的排在最前面,姓名短的排在最后面。

姓名的长度他们有这样的约定:每个人的姓名只能由 “a” ( ASCII 码为 97 )到 “z” ( ASCII码为 122 ) 这 26 个小写英文字母构成,姓名的长度就是姓名中字母的总个数。

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

输入格式

输入共 n+1n+1 行。

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

22 行到第 n+1n+1 行,每行一个字符串,其中第 i+1i+1 行表示第 ii 个小朋友的姓名,数据保证每个小朋友都有姓名,并且姓名的长度不超过 255255

数据范围

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

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

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

输出格式

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

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

样例

3
aoteman
guaishou
jiqiren
guaishou
aoteman
jiqiren

样例解释

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