#172. [R28E]最多好串

[R28E]最多好串

时空限制

1S/512M

题目描述

一个由小写字母构成的字符串 ss 是“好的”,需要满足以下两个条件:

  1. ss 的长度必须是偶数(不妨设 s=2k|s| = 2k)。
  2. 将字符串平分为前后两半(前 kk 个字符为前半部分,后 kk 个字符为后半部分),这两部分拥有完全相同的字符构成(即每种字符的出现次数相同)。

例如:

  • aabbbbaa 是一个好的字符串。它的长度为 88,前半部分 aabb 和后半部分 bbaa 都含有两个 a 和两个 b
  • abacabac 也是一个好的字符串。它的长度为 88,前半部分 abac 和后半部分 abac 字符数量完全相同。
  • abacaba 不是好的字符串,因为它的长度是奇数。
  • abcaab 不是好的字符串。它的长度为 66,前半部分 abcc 出现 11 次,而后半部分 aabc 出现 00 次。

现给定一个长度为 nn 的字符串 SS。对于每个位置 ii(从 11nn),考虑以下操作:将 S[i]S[i] 替换为任意一个小写字母(共 2626 种选择,包括自身)。对于每种替换,可得到一个新字符串,并统计该字符串中“好的”子串的数量。定义 f(i)f(i) 为所有 2626 种替换中,能得到的最大“好的”子串数量。

请计算 f(1),f(2),,f(n)f(1), f(2), \dots, f(n) 的值。

格式

输入格式

第一行包含一个整数 nn,表示字符串 SS 的长度。

第二行包含一个长度为 nn 的字符串 SS

输出格式

输出一行,包含 nn 个用空格隔开的整数,分别代表 f(1),f(2),,f(n)f(1), f(2), \dots, f(n)

样例

样例输入 #1

4
zzza

样例输出 #1

2 2 2 4

数据规模

对于 30%30\% 的数据,1n601 \leq n \leq 60

对于 100%100\% 的数据,1n10001 \leq n \leq 1000,字符串 SS 仅包含小写英文字母。