CafeCoder Test 001
コンテスト日時
2020/09/21 (Mo) 21:00 - 22:30

E - Strong String

Earlgray
2
s
1024
MB
300

問題文

相異なる文字列 TTUU について、TTUU よりも 弱い、すなわち UUTT よりも 強い とは、次の条件のいずれかを満たすことであると定義します。

  • TT の長さが UU の長さよりも真に小さい。
  • TTUU の長さが等しく、かつ TTUU よりも辞書順で真に小さい。

なお、TTUU よりも弱いとき、UUTT よりも弱いことはあり得ないことが示せます。

NN 個の相異なる文字列 S1, S2, , SNS_1,\ S_2,\ \ldots,\ S_N が与えられます。これらを弱いほうから順に並べてください。より正確には、これら NN 個の文字列を並べ替えたもの S1, S2, , SNS'_1,\ S'_2,\ \ldots,\ S'_N のうちで、以下の条件を満たすような唯一のものを求めてください。

  • 11 以上 N1N - 1 以下のすべての整数 ii について、SiS' _iSi+1S' _{i+1} よりも弱い。

制約

  • NN は整数である
  • 2N1052 \leq N \leq 10^5
  • SiS_i は英小文字からなる文字列である
  • 1Si101 \leq |S_i| \leq 10
  • SiSj:(ij)S_i \neq S_j \\: (i \neq j)

入力

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

$N$
$S_1$
$S_2$
$:$
$S_N$

出力

NN 行出力せよ。ii 行目には、問題文中の SiS'_i を出力せよ。

入力例 1
8 a aac ab aaaa b aa aab aba
出力例 1
a b aa ab aab aac aba aaaa

たとえば、aacaaaa を比較すると、aaaa のほうが長さが長いので、aaaaaac よりも強いです。
また、aacaba を比較すると、長さが同じであり、aba のほうが辞書順で大きいので、abaaac よりも強いです。

入力例 2
6 assam benihuki ceylon darjeeling earlgray flavor
出力例 2
assam ceylon flavor benihuki earlgray darjeeling
入力例 3
2 tea break
出力例 3
tea break

並べ替える必要がない場合もあります。