atcoder#ABC288B. [ABC288B] Qualification Contest

[ABC288B] Qualification Contest

题目描述

N N 人の人があるコンテストに参加し、i i 位の人のハンドルネームは Si S_i でした。
上位 K K 人のハンドルネームを辞書順に出力してください。

辞書順とは? 辞書順とは簡単に説明すると「単語が辞書に載っている順番」を意味します。より厳密な説明として、相異なる文字列 S S と文字列 T T の大小を判定するアルゴリズムを以下に説明します。

以下では「 S S i i 文字目の文字」を Si S_i のように表します。また、 S S T T より辞書順で小さい場合は S < T S\ \lt\ T 、大きい場合は S > T S\ \gt\ T と表します。

  1. S S T T のうち長さが短い方の文字列の長さを L L とします。i=1,2,,L i=1,2,\dots,L に対して Si S_i Ti T_i が一致するか調べます。
  2. Si  Ti S_i\ \neq\ T_i である i i が存在する場合、そのような i i のうち最小のものを j j とします。そして、Sj S_j Tj T_j を比較して、 Sj S_j がアルファベット順で Tj T_j より小さい場合は S < T S\ \lt\ T 、大きい場合は S > T S\ \gt\ T と決定して、アルゴリズムを終了します。
  3. Si  Ti S_i\ \neq\ T_i である i i が存在しない場合、 S S T T の長さを比較して、S S T T より短い場合は S < T S\ \lt\ T 、長い場合は S > T S\ \gt\ T と決定して、アルゴリズムを終了します。

输入格式

入力は以下の形式で標準入力から与えられる。

N N K K S1 S_1 S2 S_2 \vdots SN S_N

输出格式

答えを改行区切りで出力せよ。

题目大意

给出 NN 个字符串 SiS_i,按字典序升序排序,输出前 KK 个。

  • 1KN1001 \le K \le N \le 100
  • SiS_i 仅包含英文小写字母,长度不超过 1010
5 3
abc
aaaaa
xyz
a
def
aaaaa
abc
xyz
4 4
z
zyx
zzz
rbg
rbg
z
zyx
zzz
3 1
abc
arc
agc
abc

提示

制約

  • 1  K  N  100 1\ \leq\ K\ \leq\ N\ \leq\ 100
  • K, N K,\ N は整数
  • Si S_i は英小文字からなる長さ 10 10 以下の文字列
  • i  j i\ \neq\ j ならば Si  Sj S_i\ \neq\ S_j

Sample Explanation 1

このコンテストには 5 5 人が参加し、1 1 位の人のハンドルネームは abc2 2 位の人のハンドルネームは aaaaa3 3 位の人のハンドルネームは xyz4 4 位の人のハンドルネームは a5 5 位の人のハンドルネームは def でした。 上位 3 3 人のハンドルネームは abcaaaaaxyz であるため、これを辞書順に並べ替えて aaaaaabcxyz の順に出力します。