A21691.双倍回文
省选/NOI-
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
记字符串 w 的倒置为 wR。例如(abcd)R=dcba,(abba)R=abba。
对字符串 x,如果 x 满足 xR=x,则称之为回文。例如 abba 是一个回文,而 abed 不是。
如果 x 能够写成 wwRwwR 形式,则称它是一个“双倍回文”。换句话说,若要 x 是双倍回文,它的长度必须是 4 的倍数,而且 x,x 的前半部分,x 的后半部分都要是回文。例如 abbaabba 是一个双倍回文,而 abaaba 不是,因为它的长度不是 4 的倍数。
- x 的子串是指在 x 中连续的一段字符所组成的字符串。例如 be 是 abed 的子串,而 ac 不是。
- x 的回文子串,就是指满足回文性质的 x 的子串。
- x 的双倍回文子串,就是指满足双倍回文性质的 x 的子串。
你的任务是,对于给定的字符串,计算它的最长双倍回文子串的长度。
输入格式
输入分为两行。
第一行为一个整数,表示字符串的长度。
第二行有个连续的小写的英文字符,表示字符串的内容。
输出格式
输出文件只有一行即输入数据中字符串的最长双倍回文子串的长度,如果双倍回文子串不存在,则输出 0。
输入输出样例
输入#1
16 ggabaabaabaaball
输出#1
12
说明/提示
数据范围及约定
对于全部数据,1≤N≤500000。