#P1663. Beads

Beads

Description

译自 POI 2010 Stage 1.「Beads

Byteasar 决定制造一条项链,她买了一串珠子,她有一个机器,能把这条珠子切成很多段,使得每段恰有 k 个珠子 (k>0) ,如果这条珠子的长度不是 k 的倍数,最后一块长度小于 k 的段就被丢弃了。
Byteasar 想知道,选择什么数字 k 可以得到最多的不同的段。注意这里的段是可以反转的,即,子串 1,2,3 和 3,2,1 被认为是一样的。

Input Format

第一行一个正整数 n ,表示珠子的长度。
第二行 n 个空格隔开的正整数 a1,a2,…… an ,描述这一串珠子的颜色。

Output Format

第一行两个空格隔开的正整数,第一个表示能获得的最大不同的段的个数,第二个表示能获得最大值的 k 的个数。
第二行若干空格隔开的正整数 k ,表示所有能够取得最大值的 k ,请将 k 按照从小到大的顺序输出。
21
1 1 1 2 2 2 3 3 3 1 2 3 3 1 2 2 1 3 3 2 1
6 1
2

Hint

对于 100% 的数据, 1≤ n≤ 2× 105 ,且  1 i n ,有 1 ai n 。 

Translated By diamond_duke

Source

Hash KMP