atcoder#ABC288B. [ABC288B] Qualification Contest
[ABC288B] Qualification Contest
配点 : 点
問題文
人の人があるコンテストに参加し、 位の人のハンドルネームは でした。 上位 人のハンドルネームを辞書順に出力してください。
辞書順とは?
辞書順とは簡単に説明すると「単語が辞書に載っている順番」を意味します。より厳密な説明として、相異なる文字列 と文字列 の大小を判定するアルゴリズムを以下に説明します。
以下では「 の 文字目の文字」を のように表します。また、 が より辞書順で小さい場合は 、大きい場合は と表します。
- と のうち長さが短い方の文字列の長さを とします。 に対して と が一致するか調べます。
- である が存在する場合、そのような のうち最小のものを とします。そして、 と を比較して、 がアルファベット順で より小さい場合は 、大きい場合は と決定して、アルゴリズムを終了します。
- である が存在しない場合、 と の長さを比較して、 が より短い場合は 、長い場合は と決定して、アルゴリズムを終了します。
制約
- は整数
- は英小文字からなる長さ 以下の文字列
- ならば
入力
入力は以下の形式で標準入力から与えられる。
出力
答えを改行区切りで出力せよ。
5 3
abc
aaaaa
xyz
a
def
aaaaa
abc
xyz
このコンテストには 人が参加し、 位の人のハンドルネームは abc
、 位の人のハンドルネームは aaaaa
、 位の人のハンドルネームは xyz
、 位の人のハンドルネームは a
、 位の人のハンドルネームは def
でした。
上位 人のハンドルネームは abc
、aaaaa
、xyz
であるため、これを辞書順に並べ替えて aaaaa
、abc
、xyz
の順に出力します。
4 4
z
zyx
zzz
rbg
rbg
z
zyx
zzz
3 1
abc
arc
agc
abc