#P14775. [ICPC 2024 Seoul R] String Rank

[ICPC 2024 Seoul R] String Rank

Description

wwuu 是由英文小写字母组成的字符串。如果存在一个严格递增的整数序列 i1,,iki_1, \dots, i_k,其中 w=n|w| = nu=k|u| = k,且对于所有 j=1,,kj = 1, \dots, ku[j]=w[ij]u[j] = w[i_j],则称字符串 uu 是字符串 ww 的一个子序列。这里 v[i]v[i] 表示字符串 vv 的第 ii 个字符。令 w[i:]w[i:] 表示后缀 w[i]w[n]w[i] \cdots w[n]。如果 i>ni > n,则 w[i:]w[i:] 为空字符串,记为 λ\lambda

给定一个非空字符串 ww 和一个正整数 kk,我们定义 wwkk 集合 为集合 Qk(w)Q_k(w),它包含 ww 中所有长度为 0,1,,k0, 1, \dots, k 的子序列。这意味着,根据定义,对于任何字符串 ww,空字符串 λ\lambda 都属于 Qk(w)Q_k(w)

例如,当 w=aabaw = \text{aaba} 时,有 $Q_3(\text{aaba}) = \{\lambda, \text{a}, \text{b}, \text{ba}, \text{ab}, \text{aa}, \text{aba}, \text{aab}, \text{aaa}\}$。

对于一个字符串 ww,我们定义 ww 为最小整数 tt,使得 ww 的所有后缀的 tt 集合互不相同。换句话说,ww 的秩是 $\min\{t \geq 1 \mid Q_t(w[i:]) \neq Q_t(w[j:]), \forall 1 \leq i < j \leq n\}$。

例如,当 w=aabaw = \text{aaba} 时,2 集合 Q2(aba)Q_2(\text{aba})Q2(aaba)Q_2(\text{aaba}) 是相等的。另一方面,对于 t=3t = 3,我们有

$$\begin{aligned} Q_3(\lambda) &= \{\lambda\}, \\ Q_3(\text{a}) &= \{\lambda, \text{a}\}, \\ Q_3(\text{ba}) &= \{\lambda, \text{a}, \text{b}, \text{ba}\}, \\ Q_3(\text{aba}) &= \{\lambda, \text{a}, \text{b}, \text{ba}, \text{ab}, \text{aa}, \text{aba}\}, \\ Q_3(\text{aaba}) &= \{\lambda, \text{a}, \text{b}, \text{ba}, \text{ab}, \text{aa}, \text{aba}, \text{aab}, \text{aaa}\}. \end{aligned}$$

因此,字符串 w=aabaw = \text{aaba} 的秩为 33

给定一个字符串 ww,请编写一个程序输出其秩。

Input Format

你的程序需要从标准输入读取数据。输入包含一个非空字符串 ww,该字符串仅由英文小写字母组成。字符串的长度不超过 3×1063 \times 10^6

Output Format

你的程序需要向标准输出写入结果。输出恰好一行。该行应包含一个正整数,表示输入字符串 ww 的秩 tt

aabbb
3
abacb
2
azadzzadaz
4
a
1