P0737

[POI2006]OKR-Periods of Words

[POI2006]OKR-Periods of Words

一个字符串是由有限个小写字母组成的序列,空序列也视为字符串。

若存在字符串 BB,使得 A=PBA=PB,则称字符串 PP 是字符串 AA 的前缀。若 PP 是 AA 的前缀,且 PP 既不是空串,也不等于 AA,则称 PP 是 AA 的真前缀。

若字符串 QQ 是 AA 的真前缀,并且 AA 是 QQQQ 的前缀(不一定是真前缀),则称 QQ 是 AA 的一个周期。例如,字符串 abab 和 ababab 都是字符串 abababa 的周期。

字符串 AA 的最大周期是其最长的周期;如果 AA 不存在周期,则其最大周期为空串。例如,ababab 的最大周期是 abab,而 abc 的最大周期是空串。

给定一个长度为 kk 的字符串,请求出它的所有前缀的最大周期长度之和。

输入格式

第一行输入一个整数 kk,表示字符串的长度。

第二行输入一个由 kk 个小写字母组成的字符串。

输出格式

输出一个整数,表示给定字符串的所有前缀的最大周期长度之和。

样例输入

8
babababa

样例输出

24

数据范围

  • 1≤k≤1061\le k\le 10^6。

来源与许可

本题为 POI 2006 试题「OKR-Periods of Words」,题面与测试数据整理自 BZOJ 1511。

样例 1

输入

8
babababa

输出

24