题库练习 Array Elimination
← 上一题 下一题 →

A14583 | Array Elimination

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

You are given array $a_1, a_2, \ldots, a_n$ , consisting of non-negative integers.

Let's define operation of "elimination" with integer parameter $k$ ( $1 \leq k \leq n$ ) as follows:

- Choose $k$ distinct array indices $1 \leq i_1 < i_2 < \ldots < i_k \le n$ .
- Calculate $x = a_{i_1} ~ \& ~ a_{i_2} ~ \& ~ \ldots ~ \& ~ a_{i_k}$ , where $\&$ denotes the [bitwise AND operation](https://en.wikipedia.org/wiki/Bitwise_operation#AND) (notes section contains formal definition).
- Subtract $x$ from each of $a_{i_1}, a_{i_2}, \ldots, a_{i_k}$ ; all other elements remain untouched.

Find all possible values of $k$ , such that it's possible to make all elements of array $a$ equal to $0$ using a finite number of elimination operations with parameter $k$ . It can be proven that exists at least one possible $k$ for any array $a$ .

Note that you firstly choose $k$ and only after that perform elimination operations with value $k$ you've chosen initially.

输入格式

Each test contains multiple test cases. The first line contains the number of test cases $t$ ( $1 \leq t \leq 10^4$ ). Description of the test cases follows.

The first line of each test case contains one integer $n$ ( $1 \leq n \leq 200\,000$ ) — the length of array $a$ .

The second line of each test case contains $n$ integers $a_1, a_2, \ldots, a_n$ ( $0 \leq a_i < 2^{30}$ ) — array $a$ itself.

It's guaranteed that the sum of $n$ over all test cases doesn't exceed $200\,000$ .

输出格式

For each test case, print all values $k$ , such that it's possible to make all elements of $a$ equal to $0$ in a finite number of elimination operations with the given parameter $k$ .

Print them in increasing order.

输入输出样例

输入 #1
5
4
4 4 4 4
4
13 7 25 19
6
3 5 3 1 7 1
1
1
5
0 0 0 0 0
输出 #1
1 2 4
1 2
1
1
1 2 3 4 5
C++ 编辑器
输入
输出