给我们一个由m个非负整数组成的序列a:a1,a2,…,am,如果满足:a1+a2+⋯+am=2⋅(a1⊕a2⊕⋯⊕am),则称该序列为一个完美序列,其中⊕表示按位异或运算。
例如,序列: [1、2、3、6] 是完美序列,因为1+2+3+6 = 12 = 2*6 = 2*(1⊕2⊕3⊕6)。而序列:[1,2,1,3]则不是完美序列,因为1+2+1+3=7≠2*1=2*(1⊕2⊕1⊕3)。
现给定一个长度为n的序列a:a1,a2,…,an,可以确保最多增加3个元素就一定可以将其转换为完美序列,增加的元素可以相同。当然,一个序列如果已经是完美序列,我们也可以不增加任何元素。请问:至少需要增加几个元素才可以将序列a转换为完美序列?增加的元素分别是什么?如果有多组解,可以输出任意一个解。
第一行一个整数t(1≤t≤104):测试用例数;
每个测试用例的第一行为一个整数n(1≤t≤1e5): 序列a中的元素个数;
第二行为n个非负整数a1,a2,…,an(0≤ai≤1e9):ai为序列a的第i个元素;
测试数据保证,所有测试用例的n之和不超过1e5;
共2t行,每个测试用例两行;
第一行为一个整数s(0≤s≤3):将序列a转换为完美序列需要增加的元素个数;
第二行为s个整数b1,b2,…,bs:所增加的s个元素,如果s=0,则输出一个空行;
如果存在多组解,可以输出任意一组;
对于第一个测试用例,已经是完美序列,增加0个元素;
对于第二个测试用例,增加2个元素:8,16,将序列转换为:[8,8,16], 则有:8+8+16=32, 8⊕8⊕16=16,显然该序列为完美序列,所以,s=2,增加的两个元素为8,16;
第二组测试数据:
输入:
10
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
2
0 0
2
0 1
输出:
0
2
1 2
2
2 4
2
3 6
2
4 8
2
5 10
2
6 12
2
7 14
0
2
1 2
第三组测试数据:
输入:
4
10
503267051 876861737 988724219 922175164 296050819 427212499 209442005 476834192 786318930 362633421
10
508489882 170591110 721834280 34801620 360995855 783817898 624264218 688985736 277214222 217158865
10
152760527 354956868 911460478 853252465 690047156 677371471 851621117 423909199 458796634 573933717
10
969228512 232013364 436304837 800021394 461942946 479319841 424805669 657182362 483629554 909443642
输出:
2
103147279 5952667316
2
370939656 4759093342
2
187679746 6135789378
2
305752439 6159644560