#P14893. [ICPC 2018 Yokohama R] Digits Are Not Just Characters

[ICPC 2018 Yokohama R] Digits Are Not Just Characters

Description

Manuel Majorana Minore 先生创建了许多文件名中包含数字的文件。他希望得到一个文件列表,但常用的文件列表命令会按照不同于他偏好的顺序列出文件,因为这些命令将文件名中的数字序列解释为 ASCII 码序列,而不是数字。例如,文件 file10file20file3 会按此顺序列出。

请编写一个程序,将数字序列解释为数值,从而决定文件名的顺序。

每个文件名由大写字母(从 ‘A’ 到 ‘Z’)、小写字母(从 ‘a’ 到 ‘z’)和数字(从 ‘0’ 到 ‘9’)组成。

文件名被视为一系列项,每一项要么是一个字母,要么是一个数字。每个单独的大写或小写字母构成一个字母项。每个连续的数字序列构成一个数字项。

两项之间的顺序如下确定。

  • 数字项排在字母项之前。
  • 两个字母项按照它们的 ASCII 码排序。
  • 两个数字项按照它们解释为十进制数时的数值排序。

比较两个文件名时,从第一个项开始逐个比较,第一个不同的对应项的次序决定了文件名的次序。如果其中一个文件名(例如 AA)比另一个文件名 BB 有更多的项,并且 BB 的所有项都与 AA 的对应项相同,那么 BB 应排在前面。

例如,样例输入 1 中的三个文件名 file10file20file3 都以相同的四个字母项序列 file 开头,随后分别是数字项 1010202033。比较这些数字项的数值,它们的顺序为 file3 << file10 << file20

Input Format

输入包含单个测试用例,格式如下。

$$\begin{aligned} & n \\ & s_0 \\ & s_1 \\ & \vdots \\ & s_n \end{aligned}$$

第一行的整数 nn 给出了需要与下一行(s0s_0)给出的文件名进行比较的文件名(s1s_1sns_n)的数量。其中,nn 满足 1n10001 \leq n \leq 1000

接下来的 n+1n + 1 行是文件名,s0s_0sns_n,每行一个。文件名至少包含一个字符,最多包含九个字符。每个字符要么是大写字母、小写字母,要么是数字。

文件名中的数字序列永远不会以数字零(00)开头。

Output Format

对于每个文件名 s1s_1sns_n,输出一行包含一个字符,表示它是否应该排在 s0s_0 之前。如果它应排在 s0s_0 之前,则字符应为 “-”;否则,应为 “+”,包括两个文件名相同的情况。

2
file10
file20
file3
+
-
11
X52Y
X
X5
X52
X52Y
X52Y6
32
ABC
XYZ
x51y
X8Y
X222
-
-
-
+
+
-
-
+
+
-
+