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}\}$。