SP263 PERIOD - Period

题目描述

如果一个字符串 $S$ 是由一个字符串 $T$ 重复 $K$ 次形成的,则称 $T$ 是 $S$ 的循环元。使 $K$ 最大的字符串 $T$ 称为 $S$ 的最小循环元,此时的 $K$ 称为最大循环次数。 现给一个给定长度为 $N$ 的字符串 $S$,对 $S$ 的每一个前缀 $S[1\sim i]$,如果它的最大循环次数大于 $1$,则输出该前缀的长度和最大循环次数。

输入格式

第一行将仅包含测试用例的数量 $T (1 \le T \le 10)$。 每个测试用例包含两行。 第一行一个整数 $N (2 \le N \le 1\times 10^6)$ 表示字符串 $S$ 的长度,第二行一个字符串 $S$。

输出格式

对于每个测试用例,第一行输出 `Test case #` 和测试点编号。接下来对于每个长度为 $i$ 且 $K > 1$ 的前缀,输出前缀大小 $i$ 和循环次数 $K$,前缀大小按递增顺序排列。在每个测试点后打印一个空白行。

说明/提示

Translate by [@qifan_maker](/user/706607).