3164 - 辛勤的蜜蜂

题目描述

在一个神秘的密林里,有一种迷人的花,它的花瓣上印着各种各样的字母。人们称它为“字母花”。这种花一年只开花一次,每次开花的时候都会吸引大量的蜜蜂前来采蜜。蜜蜂们会在花瓣上留下足迹,这些足迹形成了一个字符串 S

现在你手里拿着一段 S ,你想知道,对于每个时间间隔 i ,最多有多少只蜜蜂可以在同一段花瓣上采蜜,而不会碰到彼此。

具体地,你需要对于每个 i = 1,2,...,N−1 找到最大的非负整数l,满足以下所有条件:

1、{l + i \leq N}

2、对于所有整数 k {(1 \leq k \leq l)},都满足{S_k}S{k + i}

请注意,{l = 0} 始终满足条件。

请你编写一个程序,计算出对于每个 i ,最多有多少只蜜蜂可以在同一段花瓣上采蜜。

输入

输入两行,第一行是字符串的长度,第二行是该字符串 S

输出

输出 {N-1} 行,第 x{1 \leq x \leq N} 输出一个整数表示 {i = x} 时的答案。

样例

输入

6
abcbac

输出

5
1
2
0
1
说明

【样例解释】

在这个输入中,{S=abcbac}

{i = 1} 时,我们有 {S_1 ≠ S_2}, {S_2 ≠ S_3},…, {S_5 ≠ S_6},因此最大值为 {l=5}

{i = 2} 时,我们有 {S_1 ≠ S_3},但是 {S_2 ≠ S_4},因此最大值为 {l=1}

{i = 3} 时,我们有 {S_1 ≠ S_4}{S_2 ≠ S_5 },但是 {S_3 = S_6},因此最大值为 {l = 2}

{i = 4} 时,我们有 {S_1 = S_5},因此最大值为 {l=0}

{i = 5} 时,我们有 {S_1 ≠ S_6},因此最大值为 {l = 1}

【数据范围】

N 是一个整数,使得 {2 \leq N \leq 10^5}

S 是一个长度为 N 的字符串,由小写英文字母组成。

题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 1
通过人数 1
金币数量 0 枚
难度 基础


上一题 下一题