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。