No.205 マージして辞書順最小
問題文最終更新日: 2015-11-14 17:48:25
問題文
N 個の文字列 $S_1, ..., S_N$ が与えられる。 これらの文字列を以下のような手順でマージして、1つの文字列にする。
- 文字列 $T$ を空文字列に初期化する。
- $S_1, ..., S_N$ から空文字列ではない文字列 $S_k$をどれかひとつ選ぶ、そのような文字列がない場合は 文字列 $T$ を結果として返して終了する。
- $S_k$ の最初の一文字を文字列 $T$の一番最後に追加する。
- $S_k$ から最初の一文字を削除する。
- 2. に戻る。
入力
$N$ $S_1$ $S_2$ ... $S_N$
$1 \le N \le 50$
$1 \le |S_i| \le 50$ ($1 \le i \le N$)
文字列 $S_i$ は、アルファベット小文字('a'~'z')で構成される。
出力
マージで生成されうる文字列のうち辞書順最小のものを出力してください。最後に改行してください。
サンプル
サンプル1
入力
1 abc
出力
abc
1つしか文字列がないので、マージして得られるのは "abc" の1通りのみです。
サンプル2
入力
2 ac bd
出力
abcd
生成されうる文字列は、"abcd", "abdc", "acbd", "bacd", "badc", "bdac" の6つで、その中で辞書順最小になるのは "abcd" になります。
サンプル3
入力
5 one two three four five
出力
ffioneothreeturvewo
サンプル4
入力
2 az za
出力
azaz
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。