1359:次序问题

时间限制: 1 S | 内存限制: 8192 KB
Accept: 22 | Submit: 139
[提交] [状态] [讨论版]
描述

在某系统中,如果某个文件夹里存着一系列电视剧,起名为a1b、a2b、...,按照文件名排序时,会按照如下顺序排列a1b、a2b、a3b、...、a9b、a10b、a11b、...、a99b、a100b、...。

这种排序顺序是对字符串排序的一个调整,把字符串中相邻的数字字符当作一个“特殊的”数字字符,规定数字字符永远小于大小写字母字符,数字字符相比时,按照其表示的数字比大小。这样做的好处是电视剧集会按照正确的次序排序。

按照上述规定,a9b会小于a10b,因为第一个字符相同,在比较第二个字符时,a10b中的10被视为1个数字字符,而9比10小,所以a9b小于a10b;b9b会大于a10b,因为第一个字符就分出了大小;ab9比a10b大,因为规定10比b小(数字字符永远小于大小写字母字符)。

现在有一大堆未经排序的文件名,请输出按照以上排序规则排序后的第一个文件名和最后一个文件名。

输入

多组案例。一个正整数n,表示案例的数量。(n<=20)

每组案例中,有一个正整数m,表示字符串的数量。(2<=m<=10000)

然后是m个字符串,每个字符串有效字符数量不超过100个,且字符串只包含数字字符、大小写字母字符,连续的数字字符表示的数字范围不会超过long long int。

输出

每组案例,输出根据【描述】中的排序规则排序后的第一个字符串和最后一个字符串,两个字符串中间间隔一个空格字符,然后换行。

样例输入

2

4

a01c a2c a10b 3ab

3

a1b2c a3bc a12bc

样例输出

3ab a10b

a1b2c a12bc

HINT

第一组案例中,顺序是3ab、a01c、a2c、a10b;

第二组案例中,顺序是a1b2c、a3bc、a12bc,其中a1b2c中1和2字符不连续(中间隔了非数字字符b),所以第二个字符是1,而a12bc中的12被视为一个字符。

来源
19-20(2)第7次线上赛