Beads
题号:NC50317
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

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

输入描述:

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

输出描述:

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

输入

复制
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

备注:

对于的数据,,且,有