atcoder#ABC261C. [ABC261C] NewFolder(1)

[ABC261C] NewFolder(1)

配点 : 300300

問題文

22 つの文字列 A,BA,B に対して、AA の末尾に BB を連結した文字列を A+BA+B と表します。

NN 個の文字列 S1,,SNS_1,\ldots,S_N が与えられます。i=1,,Ni=1,\ldots,N の順に、次の指示に従って加工して出力してください。

  • S1,,Si1S_1,\ldots,S_{i-1} の中に SiS_i と同じ文字列が存在しないならば、SiS_i を出力する。
  • S1,,Si1S_1,\ldots,S_{i-1} の中に SiS_i と同じ文字列が XX(X>0)(X>0) 存在するならば、XX を文字列として扱って Si+S_i+ ( +X++X+ ) を出力する。

制約

  • 1N2×1051 \leq N \leq 2\times 10^5
  • SiS_i は英小文字のみからなる長さ 11 以上 1010 以下の文字列

入力

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

NN

S1S_1

S2S_2

\vdots

SNS_N

出力

問題文中の指示にしたがって、NN 行出力せよ。

5
newfile
newfile
newfolder
newfile
newfolder
newfile
newfile(1)
newfolder
newfile(2)
newfolder(1)
11
a
a
a
a
a
a
a
a
a
a
a
a
a(1)
a(2)
a(3)
a(4)
a(5)
a(6)
a(7)
a(8)
a(9)
a(10)