atcoder#ABC285B. [ABC285B] Longest Uncommon Prefix

[ABC285B] Longest Uncommon Prefix

题目描述

英小文字からなる長さ N N の文字列 S S が与えられます。 S S x x 文字目 (1  x  N) (1\ \le\ x\ \le\ N) Sx S_x です。

i=1,2,,N1 i=1,2,\dots,N-1 それぞれについて、以下の条件を全て満たす最大の非負整数 l l を求めてください。

  • l+i  N l+i\ \le\ N である。
  • 全ての 1  k  l 1\ \le\ k\ \le\ l を満たす整数 k k について、 Sk  Sk+i S_{k}\ \neq\ S_{k+i} を満たす。

なお、 l=0 l=0 は常に条件を満たすことに注意してください。

输入格式

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

N N S S

输出格式

N1 N-1 行にわたって出力せよ。そのうち x x 行目 (1  x < N) (1\ \le\ x\ <\ N) には i=x i=x とした場合の答えを整数として出力せよ。

题目大意

给定 NN,以及长度为 NN 只含英文小写字母的字符串 SS,对于 1iN11 \le i \le N-1,分别回答以下询问(记 SkS_kSS 的第 kk 个字符,从 11 开始编号):

找到最大的 ll ,使得对于所有 1jl1\le j \le l,都满足 j+lNj+l \le N 并且 SjS_jSj+iS_{j+i} 不相同。如果不存在这样的 ll,输出 00,否则输出 ll

6
abcbac
5
1
2
0
1

提示

制約

  • N N 2  N  5000 2\ \le\ N\ \le\ 5000 を満たす整数
  • S S は英小文字からなる長さ N N の文字列

Sample Explanation 1

この入力では、 S= S= abcbac です。 - i=1 i=1 のとき、 $ S_1\ \neq\ S_2,\ S_2\ \neq\ S_3,\ \dots\ ,S_5\ \neq\ S_6 $ であるため、 最大値は l=5 l=5 です。 - i=2 i=2 のとき、 S1  S3 S_1\ \neq\ S_3 ですが S2 = S4 S_2\ =\ S_4 であるため、 最大値は l=1 l=1 です。 - i=3 i=3 のとき、 S1  S4, S2  S5 S_1\ \neq\ S_4,\ S_2\ \neq\ S_5 ですが S3 = S6 S_3\ =\ S_6 であるため、 最大値は l=2 l=2 です。 - i=4 i=4 のとき、 S1 = S5 S_1\ =\ S_5 であるため、 最大値は l=0 l=0 です。 - i=5 i=5 のとき、 S1  S6 S_1\ \neq\ S_6 であるため、 最大値は l=1 l=1 です。