#abc213f. [abc213_f]Common Prefixes

[abc213_f]Common Prefixes

题目描述

给定两个字符串 XXYY,它们的相似度 f(X,Y)f(X,Y) 定义为两个字符串的最长公共前缀的长度。
例如,字符串 abcaxbc 的相似度为 11,字符串 aaaaaaa 的相似度为 33

给定一个长度为 NN 的字符串 SS。令 SiS_i 表示以 SS 的第 ii 个字符开头的后缀。对于每个 k=1,ldots,Nk=1,\\ldots,N,找出 f(Sk,S1)+f(Sk,S2)+ldots+f(Sk,SN)f(S_k,S_1)+f(S_k,S_2)+\\ldots+f(S_k,S_N)

约束条件

  • 1leqNleq1061 \\leq N \\leq 10^6
  • SS 是长度为 NN 的由小写英文字母组成的字符串。

输入

输入采用以下格式从标准输入给出:

NN SS

输出

打印 NN 行。

ii 行应该包含 k=ik=i 时的答案。

示例输入 1

3
abb

示例输出 1

3
3
2

S1S_1abbS2S_2bbS3S_3b

  • k=1k=1 时:f(S1,S1)+f(S1,S2)+f(S1,S3)=3+0+0=3f(S_1,S_1)+f(S_1,S_2)+f(S_1,S_3)=3+0+0=3
  • k=2k=2 时:f(S2,S1)+f(S2,S2)+f(S2,S3)=0+2+1=3f(S_2,S_1)+f(S_2,S_2)+f(S_2,S_3)=0+2+1=3
  • k=3k=3 时:f(S3,S1)+f(S3,S2)+f(S3,S3)=0+1+1=2f(S_3,S_1)+f(S_3,S_2)+f(S_3,S_3)=0+1+1=2

示例输入 2

11
mississippi

示例输出 2

11
16
14
12
13
11
9
7
4
3
4