loj#P2579. 「SHOI2011」双倍回文

「SHOI2011」双倍回文

题目描述

记字符串 xx 的倒置为 xRx^R,例如 abcdR=dcba,\texttt{abcd}^R=\texttt{dcba}, abbaR=abba\texttt{abba}^R=\texttt{abba}
对字符串 xx ,如果 xx 满足 xR=xx^R=x ,则称之为回文;例如 abba\texttt{abba} 是一个回文,而 abcd\texttt{abcd} 不是。
如果 xx 能够写成 wwRwwRww^Rww^R 的形式,则称它是一个「双倍回文」。换句话说,若要 xx 是双倍回文,它的长度必须是 44 的倍数,而且 xxxx 的前半部分、 xx 的后半部分都要是回文。例如: abbaabba\texttt{abbaabba} 是一个双倍回文,而 abaaba\texttt{abaaba} 不是,因为它的长度不是 4 的倍数。
xx 的子串是指在 xx 中连续的一段字符所组成的字符串。例如 bc\texttt{bc}abcd\texttt{abcd} 的子串,而 ac\texttt{ac} 不是。
xx 的回文子串,就是指满足回文性质的 xx 的子串。
xx 的双倍回文子串,就是指满足双倍回文性质的 xx 的子串。
你的任务是,对于给定的字符串,计算它的最长双倍回文子串的长度。

输入格式

输入分为两行,第一行为一个整数 ,表示字符串的长度,第二行有 个连续的小写的英文字符,表示字符串的内容。

输出格式

输出只有一行,即:输入数据中字符串的最长双倍回文子串的长度,如果双倍回文子串不存在,则输出0。

16
ggabaabaabaaball
12
24
googlegooglegooglegoogle
0

数据范围与提示

数据编号 数据限制
11 n=1500n=1500
22 n=2500n=2500 ,答案不超过 15001500
33 n=5000n=5000 ,答案不超过 15001500
44 n=10000n=10000 ,答案不超过 15001500
55 n=25000n=25000
66 n=50000n=50000
77 n=75000n=75000
88 n=105n=10^5
99 n=2.5×105n=2.5\times 10^5
1010 n=5×105n=5\times 10^5