AT_abc219_c.[ABC219C] Neo-lexicographic Ordering

普及-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

AtCoder 王国的统治者高桥君决定更改英文字母的字母顺序。

新的字母顺序由将 a、b、…\ldots、z 重新排列得到的字符串 XX 表示。XX 的第 ii 个字符(1≤i≤261 \leq i \leq 26)表示在新的顺序中第 ii 小的英文字母。

AtCoder 王国有 NN 位国民,每位国民的名字分别为 S1,S2,…,SNS_1, S_2, \dots, S_N。其中,SiS_i(1≤i≤N1 \leq i \leq N)由小写英文字母组成。
请根据高桥君制定的新字母顺序,对这些名字按字典序进行排序。

什么是字典序?字典序简单来说就是“单词在字典中出现的顺序”。更严格地说,判断由小写英文字母组成的不同字符串 SS、TT 的大小关系的算法如下:

下面用 SiS_i 表示 SS 的第 ii 个字符。当 SS 在字典序上小于 TT 时记作 S<TS < T,大于时记作 S>TS > T。

  1. 设 LL 为 SS 和 TT 中较短的字符串的长度。对于 i=1,2,…,Li=1,2,\dots,L,依次比较 SiS_i 和 TiT_i 是否相同。
  2. 如果存在 Si≠TiS_i \neq T_i 的 ii,则取最小的这样的 ii,记为 jj。比较 SjS_j 和 TjT_j,若 SjS_j 在字母顺序上小于 TjT_j,则 S<TS < T,否则 S>TS > T,算法结束。
  3. 如果不存在 Si≠TiS_i \neq T_i 的 ii,则比较 SS 和 TT 的长度,若 SS 比 TT 短,则 S<TS < T,否则 S>TS > T,算法结束。

输入格式

输入按以下格式从标准输入读入。

XX
NN
S1S_1
S2S_2
⋮\vdots
SNS_N

输出格式

输出 NN 行。第 ii 行输出按高桥君指定的新字母顺序排序后,第 ii 小的国民名字。

输入输出样例

  • 输入#1

    bacdefghijklmnopqrstuvwxzy
    4
    abx
    bzz
    bzy
    caa

    输出#1

    bzz
    bzy
    abx
    caa
  • 输入#2

    zyxwvutsrqponmlkjihgfedcba
    5
    a
    ab
    abc
    ac
    b

    输出#2

    b
    a
    ac
    ab
    abc

说明/提示

限制条件

  • XX 是由 a、b、…\ldots、z 重新排列得到的字符串。
  • 2≤N≤500002 \leq N \leq 50000
  • NN 为整数。
  • 1≤∣Si∣≤101 \leq |S_i| \leq 10(1≤i≤N1 \leq i \leq N)
  • SiS_i 由小写英文字母组成(1≤i≤N1 \leq i \leq N)
  • Si≠SjS_i \neq S_j(1≤i<j≤N1 \leq i < j \leq N)

样例解释 1

在高桥君新设定的字母顺序中,b 比 a 小,z 比 y 小。因此,按字典序排序后,国民的名字依次为 bzz、bzy、abx、caa。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页