AT_abc287_e [ABC287E] Karuta
Description
[problemUrl]: https://atcoder.jp/contests/abc287/tasks/abc287_e
英小文字からなる文字列が $ N $ 個与えられます。$ i\ \,\ (i\ =\ 1,\ 2,\ \dots,\ N) $ 番目のものを $ S_i $ と表します。
二つの文字列 $ x,\ y $ に対し、以下の条件を全て満たす最大の整数 $ n $ を $ \mathrm{LCP}(x,\ y) $ と表します。
- $ x,\ y $ の長さはいずれも $ n $ 以上
- $ 1 $ 以上 $ n $ 以下の全ての整数 $ i $ に対し、$ x $ の $ i $ 文字目と $ y $ の $ i $ 文字目が等しい
全ての $ i\ =\ 1,\ 2,\ \dots,\ N $ に対し、以下の値を求めてください。
- $ \displaystyle\ \max_{i\ \neq\ j}\ \mathrm{LCP}(S_i,\ S_j) $
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ S_1 $ $ S_2 $ $ \vdots $ $ S_N $
Output Format
$ N $ 行出力せよ。$ i\ \,\ (i\ =\ 1,\ 2,\ \dots,\ N) $ 行目には、$ \displaystyle\ \max_{i\ \neq\ j}\ \mathrm{LCP}(S_i,\ S_j) $ を出力せよ。
Explanation/Hint
### 制約
- $ 2\ \leq\ N\ \leq\ 5\ \times\ 10^5 $
- $ N $ は整数
- $ S_i $ は英小文字からなる長さ $ 1 $ 以上の文字列 $ (i\ =\ 1,\ 2,\ \dots,\ N) $
- $ S_i $ の長さの総和は $ 5\ \times\ 10^5 $ 以下
### Sample Explanation 1
$ \mathrm{LCP}(S_1,\ S_2)\ =\ 2,\ \mathrm{LCP}(S_1,\ S_3)\ =\ 1,\ \mathrm{LCP}(S_2,\ S_3)\ =\ 1 $ です。