[Citric S2]柠檬的密码

成绩 0 开启时间 2013年02月21日 星期四 23:02
折扣 0.8 折扣时间 2013年02月28日 星期四 23:02
允许迟交 关闭时间 2013年02月28日 星期四 23:02
输入文件 password.in 输出文件 password.out

【题目背景】

第二届『Citric杯』NOIP提高组模拟赛 第三题


【题目描述】

Lemon觉得他需要一个复杂的密码来保证他的帐号的安全。他经过多日思考,决定使用一个长度为奇数的回文串来作为他的密码。
但是这个回文串太长了,Lemon记不住,于是Lemon决定把它记在本子上。当然直接把密码明文记录实在太愚蠢了,于是Lemon决定在记录时加入一些无意义的字符以保证密码的安全。
具体来说,假设Lemon的密码串是S,Lemon选择了一个不超过len(S)/2的正整数x,然后把S的前x个字符组成的字符串设为Left,把S的后x个字符组成的字符串设为Right,把S其余的字符组成的字符串设为Mid.
Lemon实际记录在密码本上的内容是A+Left+B+Mid+C+Right. 其中A,B,C都是无意义的字符串(有可能是空串)。他觉得这样就很安全了。


某一天,Melon无意发现了Lemon的笔记本,并发现了这个字符串。Melon决定把Lemon的密码破解出来。但是显然有不计其数的可能密码。
Melon认为,Lemon的密码一定很长,于是他想知道,这个字符串里隐藏的最长可能的密码有多长呢?


【输入格式】

输入数据第一行包含一个正整数N,表示字符串的长度。
数据数据第二行包含一个长度为N的字符串,仅由小写字母组成,表示需要破译的字符串。


【输出格式】

输出数据仅包含一个整数,表示最长可能的密码的长度。


【输入文件样例】

25
orzabcdxyzefgfeqwertydcba


【输出文件样例】

13


【样例解释】

最长的可能的密码是abcdefgfedcba,长度为13
Lemon选择的x=4
Left="abcd" Right="dcba" Mid="efgfe"
A="orz" B="xyz" C="qwerty"


【数据规模约定】

时间限制1s
对于20%的数据,满足N<=20
对于40%的数据,满足N<=300
对于60%的数据,满足N<=2000
对于100%的数据,满足N<=100000