#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 )