#C10L10P06. C10.L10.结营测试2.最小和

C10.L10.结营测试2.最小和

题目描述

给出一个含有 nn 个元素的序列 aia_i

对于每次操作,你可以选择两个不同的整数 i,ji,j( 1ijn1 \le i \le j \le n ),将 aia_i 替换为 xx、将 aja_j 替换为 yy

为了不破坏这个序列,你需要保证 aiaj=xya_i | a_j = x | y,且 x,yx,y 均为非负整数。(其中 | 表示按位或运算)

你需要通过上述操作,最小化此序列的和( a1+a2+a3+...+ana_1 + a_2 + a_3+ ... + a_n )。

请输出经过任意次操作后,序列的最小和。

输入格式

此题包含多个测试用例,第一行一个正整数 tt ( t1000t \le 1000 )表示测试用例的数量。

对于每个测试用例:

第一行一个整数 nn ( 2n1002 \le n \le 100 ),代表序列的元素数量

第二行 nn 个整数 al,a2,...,ana_l,a_2,..., a_n( 0<ai<2300 \lt a_i \lt 2^{30} )

输出格式

tt 行,每行一个整数,第 ii 行为第 ii 组数据的最小和。

样例

4
3
1 3 2
5
1 2 4 8 16
2
6 6
3
3 5 6
3
31
6
7

样例解释

在第一组数据中,你可以进行如下操作:

选择 i=1,j=2i=1,j=2,修改 a1a_111,修改 a2a_222。因为 13=121|3=1|2,所以是有效的操作。此时序列变为 [1,2,2]。

选择 i=2,j=3i=2,j=3,修改 a2a_200,修改 a3a_322。因为 22=022|2=0|2,所以是有效的操作。此时序列变为 [1,0,2]。

我们可以证明其最小和为 1+0+2=31+0+2=3

对于第二组数据中,我们不需要任何操作