E - Strong String
Earlgray
2
s
1024
MB
300
点
問題文
相異なる文字列 $T$ と $U$ について、$T$ が $U$ よりも 弱い、すなわち $U$ が $T$ よりも 強い とは、次の条件のいずれかを満たすことであると定義します。
- $T$ の長さが $U$ の長さよりも真に小さい。
- $T$ と $U$ の長さが等しく、かつ $T$ が $U$ よりも辞書順で真に小さい。
なお、$T$ が $U$ よりも弱いとき、$U$ が $T$ よりも弱いことはあり得ないことが示せます。
$N$ 個の相異なる文字列 $S_1,\ S_2,\ \ldots,\ S_N$ が与えられます。これらを弱いほうから順に並べてください。より正確には、これら $N$ 個の文字列を並べ替えたもの $S'_1,\ S'_2,\ \ldots,\ S'_N$ のうちで、以下の条件を満たすような唯一のものを求めてください。
- $1$ 以上 $N - 1$ 以下のすべての整数 $i$ について、$S' _i$ が $S' _{i+1}$ よりも弱い。
制約
- $N$ は整数である
- $2 \leq N \leq 10^5$
- $S_i$ は英小文字からなる文字列である
- $1 \leq |S_i| \leq 10$
- $S_i \neq S_j \: (i \neq j)$
入力
入力は以下の形式で標準入力から与えられる。
$N$
$S_1$
$S_2$
$:$
$S_N$
出力
$N$ 行出力せよ。$i$ 行目には、問題文中の $S'_i$ を出力せよ。
入力例 1
8
a
aac
ab
aaaa
b
aa
aab
aba
出力例 1
a
b
aa
ab
aab
aac
aba
aaaa
たとえば、aac
と aaaa
を比較すると、aaaa
のほうが長さが長いので、aaaa
は aac
よりも強いです。
また、aac
と aba
を比較すると、長さが同じであり、aba
のほうが辞書順で大きいので、aba
は aac
よりも強いです。
入力例 2
6
assam
benihuki
ceylon
darjeeling
earlgray
flavor
出力例 2
assam
ceylon
flavor
benihuki
earlgray
darjeeling
入力例 3
2
tea
break
出力例 3
tea
break
並べ替える必要がない場合もあります。