P14893 [ICPC 2018 Yokohama R] Digits Are Not Just Characters
题目描述
Manuel Majorana Minore 先生创建了许多文件名中包含数字的文件。他希望得到一个文件列表,但常用的文件列表命令会按照不同于他偏好的顺序列出文件,因为这些命令将文件名中的数字序列解释为 ASCII 码序列,而不是数字。例如,文件 **file10**、**file20** 和 **file3** 会按此顺序列出。
请编写一个程序,将数字序列解释为数值,从而决定文件名的顺序。
每个文件名由大写字母(从 ‘A’ 到 ‘Z’)、小写字母(从 ‘a’ 到 ‘z’)和数字(从 ‘0’ 到 ‘9’)组成。
文件名被视为一系列项,每一项要么是一个字母,要么是一个数字。每个单独的大写或小写字母构成一个字母项。每个连续的数字序列构成一个数字项。
两项之间的顺序如下确定。
- 数字项排在字母项之前。
- 两个字母项按照它们的 ASCII 码排序。
- 两个数字项按照它们解释为十进制数时的数值排序。
比较两个文件名时,从第一个项开始逐个比较,第一个不同的对应项的次序决定了文件名的次序。如果其中一个文件名(例如 $A$)比另一个文件名 $B$ 有更多的项,并且 $B$ 的所有项都与 $A$ 的对应项相同,那么 $B$ 应排在前面。
例如,样例输入 1 中的三个文件名 **file10**、**file20** 和 **file3** 都以相同的四个字母项序列 **f**、**i**、**l** 和 **e** 开头,随后分别是数字项 $10$、$20$ 和 $3$。比较这些数字项的数值,它们的顺序为 **file3** $
输入格式
输入包含单个测试用例,格式如下。
$$
\begin{aligned}
& n \\
& s_0 \\
& s_1 \\
& \vdots \\
& s_n
\end{aligned}
$$
第一行的整数 $n$ 给出了需要与下一行($s_0$)给出的文件名进行比较的文件名($s_1$ 到 $s_n$)的数量。其中,$n$ 满足 $1 \leq n \leq 1000$。
接下来的 $n + 1$ 行是文件名,$s_0$ 到 $s_n$,每行一个。文件名至少包含一个字符,最多包含九个字符。每个字符要么是大写字母、小写字母,要么是数字。
文件名中的数字序列永远不会以数字零($0$)开头。
输出格式
对于每个文件名 $s_1$ 到 $s_n$,输出一行包含一个字符,表示它是否应该排在 $s_0$ **之前**。如果它应排在 $s_0$ 之前,则字符应为 “-”;否则,应为 “+”,包括两个文件名相同的情况。