样品分段检测

普及⏱ 1000ms💾 256MB#P5159🏷️ 哈希枚举

题目描述

流水线上有一排 $n$ 个工位,每个工位有一个类别编号 $a_i$。 质检方案是选定一个步长 $k$:从头开始每 $k$ 个连续工位划为一个样品段, 末尾不足 $k$ 个的零头直接丢弃。两个样品段相同,当且仅当工位类别序列 一致,或者一段恰好是另一段的倒序。 对每个 $k$ 都能统计出不同的样品段个数,问该个数最大能到多少, 并输出取得最大值的所有 $k$(升序)。

输入格式

第一行一个整数 $n$; 第二行 $n$ 个整数 $a_1 \ldots a_n$。

输出格式

第一行两个整数:最大不同样品段个数、取得该最大值的 $k$ 的个数; 第二行升序输出所有这样的 $k$,用空格分隔。

数据范围

$$1 \le n \le 2 \times 10^5$$
,
$$1 \le a_i \le n$$
。

样例输入 #1
21
1 1 1 2 2 2 3 3 3 1 2 3 3 1 2 2 1 3 3 2 1
样例输出 #1
6 1
2
样例输入 #2
1
1
样例输出 #2
1 1
1