#892. 小大字典序(word)

小大字典序(word)

题目描述

众所周知大写字母 'A' 的 ASCII 码为 65,小写字母 'a' 的 ASCII 码为 97。大写字母的 ASCII 码居然比小写字母的 ASCII 码要小,稽宝对此感到很不满意,并决定发明一个“小大字典序”。在“小大字典序”中,字母之间的大小关系如下:

​ $$'a' < 'b' < 'c' < \dots < 'z' < 'A' < 'B' < 'C' < \dots < 'Z'$$

意味着如果两个字母同为小写字母或同为大写字母,则在字母表中更靠前的字母更小,否则小写字母更小。

给定 nn 个仅由字母组成的字符串,要求你按照如下规则给字符串进行排序:

  • 长度不相等时,长度较短的排在前面
  • 长度相等时,“小大字典序”更小的字符串排在前面

最后将排好序的 nn 个字符串依次输出。

说明:两个字符串 a,ba,b 按照“小大字典序”比较大小时,依次比较其每一个字符 ai,bia_i,b_i,对应字符更小的字符串更小;若相等则继续比较下一位。

输入格式

第一行输入一个正整数 nn,表示字符串的数量。

接下来 nn 行,每行输入一个仅由字母组成的字符串 sis_i

输出格式

输出 nn 行,为排好序后的字符串。

样例1

7
abcABC
ABCabc
aBcAbC
x
X
aBcc
abcc
x
X
abcc
aBcc
abcABC
aBcAbC
ABCabc

样例2

见选手目录下的 word/word2.inword/word2.inword/word2.answord/word2.ans

该测试用例满足测试点 585\sim 8 的约束条件。

数据范围

对于 100%100\% 的数据,有 1n105,1si101 \leq n \le 10^5, 1 \le |s_i| \le 10。其中 si|s_i| 为字符串 sis_i 的长度。

各测试点的附加限制如下表所示:

测试点编号 nn \leq 特殊性质
121 \sim 2 100100 A
343 \sim 4 B
585 \sim 8 10001000
9109 \sim 10 100000100000

特殊性质 A:每个字符串的长度均为 1。

特殊性质 B:字符串中仅包含小写字母。

点击下载大样例