#abc219c. [abc219_c]Neo-lexicographic Ordering
[abc219_c]Neo-lexicographic Ordering
问题陈述
高桥是 AtCoder 王国的统治者,他决定改变英文字母的小写字母顺序。
新的字母顺序用字符串 表示,它是 a
, b
, , z
的一个排列。 的第 个字符 是新顺序中第 小的英文字母。
王国有 名公民,他们的名字是 ,其中每个 由小写英文字母组成。按照高桥决定的字母顺序将这些名字按词典顺序进行排序。
什么是词典顺序?
简单地说,词典顺序是单词在字典中列出的顺序。作为更正式的定义,下面是确定不同字符串 和 之间词典顺序的算法。
下面,我们将 表示为 的第 个字符。此外,如果 在词典顺序上小于 ,我们将把这个事实表示为 ;如果 在词典顺序上大于 ,我们将把这个事实表示为 。
- 让 是 和 的长度中较小的一个。对于每个 ,我们检查 和 是否相同。
- 如果存在 ,使得 ,让 是最小的这样的 。然后,我们比较 和 。如果 在字母顺序中出现在 之前,我们确定 并且停止;如果 在 之后出现,我们确定 并且停止。
- 如果不存在这样的 ,我们比较 和 的长度。如果 比 短,我们确定 并且停止;如果 比 长,我们确定 并且停止。
约束条件
- 是
a
,b
, ,z
的一个排列。 - 是一个整数。
- 由小写英文字母组成。
输入
输入以以下格式从标准输入给出:
输出
打印 行。第 行 应包含按照高桥决定的字母顺序排序时公民姓名中的第 小的名字。
示例输入 1
bacdefghijklmnopqrstuvwxzy
4
abx
bzz
bzy
caa
示例输出 1
bzz
bzy
abx
caa
根据高桥设定的新字母顺序,b
比 a
小,z
比 y
小。因此,按照词典顺序对公民姓名排序将得到升序排列的 bzz
,bzy
,abx
,caa
。
示例输入 2
zyxwvutsrqponmlkjihgfedcba
5
a
ab
abc
ac
b
示例输出 2
b
a
ac
ab
abc