atcoder#ABC287E. [ABC287E] Karuta

[ABC287E] Karuta

配点 : 500500

問題文

英小文字からなる文字列が NN 個与えられます。i(i=1,2,,N)i \, (i = 1, 2, \dots, N) 番目のものを SiS_i と表します。

二つの文字列 x,yx, y に対し、以下の条件を全て満たす最大の整数 nnLCP(x,y)\mathrm{LCP}(x, y) と表します。

  • x,yx, y の長さはいずれも nn 以上
  • 11 以上 nn 以下の全ての整数 ii に対し、xxii 文字目と yyii 文字目が等しい

全ての i=1,2,,Ni = 1, 2, \dots, N に対し、以下の値を求めてください。

  • $\displaystyle \max_{i \neq j} \mathrm{LCP}(S_i, S_j)$

制約

  • 2N5×1052 \leq N \leq 5 \times 10^5
  • NN は整数
  • SiS_i は英小文字からなる長さ 11 以上の文字列 (i=1,2,,N)(i = 1, 2, \dots, N)
  • SiS_i の長さの総和は 5×1055 \times 10^5 以下

入力

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

NN

S1S_1

S2S_2

\vdots

SNS_N

出力

NN 行出力せよ。i(i=1,2,,N)i \, (i = 1, 2, \dots, N) 行目には、$\displaystyle \max_{i \neq j} \mathrm{LCP}(S_i, S_j)$ を出力せよ。

3
abc
abb
aac
2
2
1

$\mathrm{LCP}(S_1, S_2) = 2, \mathrm{LCP}(S_1, S_3) = 1, \mathrm{LCP}(S_2, S_3) = 1$ です。

11
abracadabra
bracadabra
racadabra
acadabra
cadabra
adabra
dabra
abra
bra
ra
a
4
3
2
1
0
1
0
4
3
2
1