#L2579. 「SHOI2011」双倍回文
「SHOI2011」双倍回文
题目描述
记字符串 ( x ) 的倒置为 ( x^R ),例如 (\texttt{abcd}^R=\texttt{dcba}),(\texttt{abba}^R=\texttt{abba})。
- 若 ( x ) 满足 ( x^R = x ),则称之为回文;例如 (\texttt{abba}) 是回文,(\texttt{abcd}) 不是。
- 若 ( x ) 能写成 ( ww^Rww^R ) 的形式,则称它是双倍回文。即:( x ) 的长度必须是 ( 4 ) 的倍数,且 ( x )、( x ) 的前半部分、( x ) 的后半部分都为回文。例如 (\texttt{abbaabba}) 是双倍回文(长度 ( 8=4 \times 2 ),前半 (\texttt{abba}) 是回文,后半 (\texttt{abba}) 与前半相同且是回文);而 (\texttt{abaaba}) 不是(长度不是 ( 4 ) 的倍数)。
( x ) 的子串是指 ( x ) 中连续的一段字符组成的字符串;回文子串是满足回文性质的子串;双倍回文子串是满足双倍回文性质的子串。
你的任务是,对于给定的字符串,计算它的最长双倍回文子串的长度。
输入格式
输入分为两行,第一行为一个整数 ( n ),表示字符串的长度;第二行有 ( n ) 个连续的小写英文字符,表示字符串的内容。
输出格式
输出只有一行,即输入字符串的最长双倍回文子串的长度;若不存在,输出 ( 0 )。
样例
样例 1
输入:
16
ggabaabaabaaball
输出:
12
样例 2
输入:
24
googlegooglegooglegoogle
输出:
0
数据范围与提示
| 数据编号 | 数据限制 |
|---|---|
| 1 | ( n=1500 ) |
| 2 | ( n=2500 ),答案不超过 ( 1500 ) |
| 3 | ( n=5000 ),答案不超过 ( 1500 ) |
| 4 | ( n=10000 ),答案不超过 ( 1500 ) |
| 5 | ( n=25000 ) |
| 6 | ( n=50000 ) |
| 7 | ( n=75000 ) |
| 8 | ( n=10^5 ) |
| 9 | ( n=2.5 \times 10^5 ) |
| 10 | ( n=5 \times 10^5 ) |