#L3584. 「eJOI2021」K 划分

「eJOI2021」K 划分

题目描述

Virgil 刚刚开始学习数组的性质。因此,他定义了 K-数组,为任意正整数数组 AA 满足所有长度为 KK 的连续子序列可以被划分为两个不相交,并且可能不是连续的子序列,但是两个子序列的和是相等的。

例如 [1,2,1,3][1,2,1,3] 是一个 33-数组,因为:

  • 子序列 [1,2,1][1,2,1] 可以被划分为 [1,1][1,1][2][2],两个子序列的和都是 22
  • 子序列 [2,1,3][2,1,3] 可以划分为 [2,1][2,1][3][3],两个子序列的和均为 33

但它不是一个 22-数组,因为 [1,2][1,2] 不能被划分为和相等的两个不相交,并且可能不是连续的子序列。类似地它也不是一个 44-数组。

给定 TT 个正整数数组。对于每个数组 AA,Virgil 想知道 AA 是 K-数组的所有 KK 值。


输入格式

第一行包含一个整数 TT,接下来给出 TT 个数组。

每个数组用两行描述。第一行包含一个整数 NN 表示数组的长度。第二行包含数组的元素,两个数中间用一个空格隔开。


输出格式

按顺序输出对于每个数组 AA 的答案。对于每个数组输出一行,首先输出给定数组是 K-数组所有满足条件的 KK 的个数,接下来按递增顺序输出这些 KK 的值。


样例

输入

2
7
7 3 5 1 3 3 5
6
1 2 3 5 8 3

输出

2 4 6
2 3 6

数据范围与提示

  • 1T201 \le T \le 20
  • A\sum A 表示在任意数组中所有元素的和(不是所有数组中的元素和)。那么 1A1051 \le \sum A \le 10^5
# 分值 限制
1 10 1N301 \le N \le 30
2 20 31N12031 \le N \le 120
3 70 121N103121 \le N \le 10^3