#CF1991C. Absolute Zero

Absolute Zero

绝对零度

时间限制:2 秒
空间限制:256 MB

给定一个包含 nn 个整数的数组 aa

在一次操作中,你需要执行以下两步:

  1. 选择一个整数 xx0x1090 \le x \le 10^9)。
  2. 将每个 aia_i 替换为 aix|a_i - x|,其中 v|v| 表示 vv 的绝对值。

例如,选择 x=8x=8 后,数组 [5,7,10][5,7,10] 会变成 [58,78,108]=[3,1,2][|5-8|,|7-8|,|10-8|] = [3,1,2]

请你构造一个操作序列,在最多 4040操作内将 aa 的所有元素变为 00,或者判断这不可能。你不需要最小化操作次数。

输入格式

第一行包含一个整数 tt1t1041 \le t \le 10^4)—— 测试数据的组数。

每组测试数据包含两行:

  • 第一行包含一个整数 nn1n21051 \le n \le 2 \cdot 10^5)—— 数组长度。
  • 第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n0ai1090 \le a_i \le 10^9)。

保证所有测试数据的 nn 之和不超过 21052 \cdot 10^5

输出格式

对于每组测试数据,若不可能在 4040 次操作内将所有元素变为 00,输出一行 -1

否则,输出两行:

  • 第一行包含一个整数 kk0k400 \le k \le 40)—— 操作次数。
  • 第二行包含 kk 个整数 x1,x2,,xkx_1, x_2, \dots, x_k0xi1090 \le x_i \le 10^9)—— 操作序列,表示第 ii 次操作选择的 x=xix = x_i

若存在多种方案,任意输出一种均可。操作次数不需要最小化。

样例输入

5
1
5
2
0 0
3
4 6 8
4
80 40 20 10
5
1 2 3 4 5

样例输出

1
5
0

3
6 1 1
7
60 40 20 10 30 25 5
-1

样例解释

  • 第一组:选择 x=5x=5,数组 [5][5] 变为 [0][0]
  • 第二组:数组元素已全为 00,无需操作。
  • 第三组:依次选择 x=6,1,1x=6, 1, 1,数组变化:[4,6,8][2,0,2][1,1,1][0,0,0][4,6,8] \to [2,0,2] \to [1,1,1] \to [0,0,0]
  • 第四组:给出的序列可将数组全变 00
  • 第五组:可以证明无法在 4040 次操作内全变 00,输出 -1