#L6288. 猫咪

猫咪

题目描述

原题来自:Codeforces Round #364 (Div. 1) E

大 F 想养猫。

"你喜欢小猫咪吗?" "喵。" "你变成猫了吗?" "喵!"

大 F 喜欢小猫咪,大 F 想养很多很多小猫咪,但是大 F 的想象力十分匮乏,她希望小 F 来帮她为猫咪们取名字。

小 F 也喜欢小猫咪,小 F 也想养许多许多小猫咪,但是小 F 有强迫症,如果养了 KK 只猫咪,名字分别是非空字符串 S1,S2,SKS_1, S_2, \ldots S_K,她希望对于所有的 2iK2 \le i \le KSiS_iSi1S_{i-1} 的双子串。另外,小 F 还希望 S1S_1 是她自己给定的字符串 TT 的子串。

双子串的定义:字符串 AA 被称作 BB 的双子串,意思是说,AA 作为 BB 的子串,在 BB 中的不同位置出现了至少 22 次。比如说:

ABC\texttt{ABC}ZZABCZZABCZZ\texttt{ZZABCZZABCZZ} 的双子串

ABA\texttt{ABA}ABABA\texttt{ABABA} 的双子串(这里的两次出现有重叠部分,这是允许的)

AAB\texttt{AAB} 不是 AABAB\texttt{AABAB} 的双子串

小 F 想养尽量多的猫咪,所以小 F 想要找到尽量大的 KK,使得存在 S1,S2,,SKS_1, S_2, \ldots, S_K 满足条件。

输入格式

一行一个字符串 TT,仅含小写字母。

输出格式

一个整数,可能的 KK 的最大值。

qaqaqzz
3

解释: S1=qaqaqzzS_1 = \texttt{qaqaqzz} S2=qaqS_2 = \texttt{qaq} S3=qS_3 = \texttt{q}

dabcabcabcabca
5

解释: S1=abcabcabcabcaS_1 = \texttt{abcabcabcabca} S2=abcabcabcaS_2 = \texttt{abcabcabca} S3=abcabcaS_3 = \texttt{abcabca} S4=abcaS_4 = \texttt{abca} S5=aS_5 = \texttt{a}

abracadabra
3

解释: S1=abracadabraS_1 = \texttt{abracadabra} S2=abraS_2 = \texttt{abra} S3=aS_3 = \texttt{a}

数据规模与约定

数据范围与提示

对于所有数据,保证 1N=T2×1051 \le N = |T| \le 2 \times 10^5TT 仅包含小写字母。

下表为各个 Subtask 的详细限制与分值分布:

Subtask 编号 NN 范围 特殊限制 分值
1 50\le 50 5
2 4000\le 4000 24
3 KK 取到最大值时,存在一种 S1KS_{1\ldots K} 的取法使得对于所有 1iK1 \le i \le KSiS_i 都是 TT 的前缀 17
4 54