P8166 [eJOI 2021] Kpart
题目描述
当一个只包含正整数的数组 $A$ 的所有长度为 $K$ 的连续子序列都能够被分成元素和相等的两部分时,数组 $A$ 就被称为 $K$ 数组。例如,$\{1,2,1,3\}$ 是一个 $3$ 数组,因为 $\{1,2,1\}$ 可被分为 $\{1,1\}$ 和 $\{2\}$ 且和均为 $2$,而 $\{2,1,3\}$ 可被分为 $\{1,2\}$ 和 $\{3\}$ 且和均为 $3$。但该数组不是 $2$ 数组,因为 $\{1,2\}$ 不能分成元素和相等的两个部分。
给定 $T$ 个只包含正整数的数组,分别求每个数组为 $K$ 数组时所有 $K$ 的取值。
输入格式
第一行一个整数 $T$。
接下来将描述 $T$ 个数组。其中第一行包含整数 $N$,第二行 $N$ 个整数,表示数组的元素。
输出格式
输出 $T$ 行,每行先输出符合要求的 $K$ 的个数,然后从小到大输出所有符合要求的 $K$ 的值。
说明/提示
#### 数据规模与约定
**本题采用捆绑测试。**
- Subtask 1(10 pts):$1 \le N \le 30$。
- Subtask 2(20 pts):$31 \le N \le 120$。
- Subtask 3(70 pts):$121 \le N \le 1000$。
对于 $100\%$ 的数据,$1 \le T \le 20$,每个数组的元素和均不超过 $10^5$。
#### 说明
本题译自 [eJOI2021](https://sepi.ro/ejoi/2021) Day 1 B Kpart。