AT_abc288_b [ABC288B] Qualification Contest
题目描述
有 $N$ 个人参加了一场比赛,第 $i$ 名的人的用户名为 $S_i$。
请将前 $K$ 名的用户名按**字典序**输出。
什么是字典序?字典序简单来说就是“单词在字典中出现的顺序”。更严格地说,对于两个不同的字符串 $S$ 和 $T$,判断它们大小的算法如下:
下面用 $S_i$ 表示“$S$ 的第 $i$ 个字符”。如果 $S$ 的字典序小于 $T$,记作 $S < T$,大于则记作 $S > T$。
1. 设 $L$ 为 $S$ 和 $T$ 中较短的字符串的长度。对于 $i=1,2,\dots,L$,依次比较 $S_i$ 和 $T_i$ 是否相等。
2. 如果存在 $S_i \neq T_i$ 的 $i$,则取最小的这样的 $i$,记为 $j$。比较 $S_j$ 和 $T_j$,如果 $S_j$ 的字母顺序小于 $T_j$,则 $S < T$,否则 $S > T$,算法结束。
3. 如果所有 $i$ 都有 $S_i = T_i$,则比较 $S$ 和 $T$ 的长度,若 $S$ 比 $T$ 短,则 $S < T$,否则 $S > T$,算法结束。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $K$
> $S_1$
> $S_2$
> $\vdots$
> $S_N$
输出格式
请将答案按行输出,每行一个用户名。
说明/提示
### 限制条件
- $1 \leq K \leq N \leq 100$
- $K, N$ 为整数
- $S_i$ 是由小写英文字母组成的,长度不超过 $10$ 的字符串
- 对于 $i \neq j$,有 $S_i \neq S_j$
### 样例解释 1
本场比赛有 $5$ 人参加,第 $1$ 名的用户名为 `abc`,第 $2$ 名的用户名为 `aaaaa`,第 $3$ 名的用户名为 `xyz`,第 $4$ 名的用户名为 `a`,第 $5$ 名的用户名为 `def`。前 $3$ 名的用户名分别为 `abc`、`aaaaa`、`xyz`,按字典序排序后依次为 `aaaaa`、`abc`、`xyz`,请按此顺序输出。
由 ChatGPT 4.1 翻译