CF1063F String Journey
题目描述
对于一个字符串数组 $t_1, \ldots, t_k$,若对于每个 $1< i\le k$ 都满足 $t_i$ 是 $t_{i-1}$ 的真子串,即 $t_i$ 是 $t_{i - 1}$ 的子串且 $t_i \ne t_{i-1}$,则称其为有序串组。列如 $\{\mathtt{ab}, \mathtt{b}\}$ 是,$\{\mathtt{ab}, \mathtt{c}\}$ 和 $\{ \mathtt{a}, \mathtt{a}\}$ 不是。
给定字符串 $s$,构造有序串组 $t_1,\ldots,t_k$ 和任意字符串数组 $u_1,\ldots,u_{k+1}$(可以为空),使 $s=u_1+t_1+u_2+t_2 + \cdots +t_k+u_{k+1}$,其中 $+$ 为字符串的拼接。
现在给定一个字符串,求满足条件的最大 $k$。
输入格式
第一行一个正整数 $n(n\le 5\times 10^5)$,表示 $s$ 的长度。
第二行一个字符串 $s$。
输出格式
一行一个整数 $k$,表示答案。
说明/提示
对于第一个样例,序列 $t$ 的一种构造为 $\{\mathtt{abcd},\mathtt{bc},\mathtt{c}\}$。
对于第二个样例,序列 $t$ 的一种构造为 $\{\mathtt{bb},\mathtt{b}\}$。