AT_abc141_e.[ABC141E] Who Says a Pun?
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个长度为 N 的字符串 S。
请你求出所有作为 S 的连续子串且在 S 中不重叠地出现至少两次的非空字符串中,最长的长度是多少。
更严格地说,求满足以下条件的正整数 len 的最大值:
- l1+len≤l2
- S[l1+i]=S[l2+i] (i=0,1,…,len−1)
存在整数 l1,l2(1≤l1,l2≤N−len+1)使上述条件成立。若不存在这样的 len,请输出 0。
输入格式
输入以以下格式从标准输入读入。
N S
输出格式
输出作为 S 的连续子串且在 S 中不重叠地出现至少两次的非空字符串中,最长的长度。如果不存在这样的非空字符串,则输出 0。
输入输出样例
输入#1
5 ababa
输出#1
2
输入#2
2 xy
输出#2
0
输入#3
13 strangeorange
输出#3
5
说明/提示
限制条件
- 2≤N≤5×103
- ∣S∣=N
- S 由小写英文字母组成
样例解释 1
满足条件的字符串有 a、b、ab、ba。这些字符串的最大长度为 2,因此答案为 2。注意,虽然 aba 作为 S 的连续子串出现了两次,但无法取到满足 l1+len≤l2 的 l1 和 l2。
样例解释 2
不存在满足条件的非空字符串。