问题1813-- QинYу的家庭作业

1813: QинYу的家庭作业

[命题人 : ]
时间限制 : 1 sec  内存限制 : 128 MB

提交

题目描述

放假了,лято老师给QинYу一份作业让他实现以下问题;
 лято老师给定一个大小为n的数组a。  
在数组a上可以执行如下操作:  
选择两个不同的整数i,j(1≤i<j≤n),用x替换ai,用y替换aj。为了不破坏数组,ai|aj=x|y必须保存,其中|表示按位或操作(注意x和y是非负整数)。  
QинYу可以在使用上述操作后得到任何次数。
лято老师让QинYу找到如上操作之后数组的最小和(可以不操作)。
但QинYу最近沉迷游戏-永劫无间,不想写这一个简单的问题,希望你可以帮他完成这一个简单的问题。

输入

每个测试包含多个测试用例。 第一行包含测试用例的数量t(1≤t≤1000)。 下面是对测试用例的描述。  
每个测试用例的第一行包含一个整数n(2≤n≤100)-数组a的大小。  
每个测试用例的第二行包含n个整数a1,a2,…,an(0≤ai<2^30)。  

输出

对于每个测试用例,在一行中输出一个数字——数组的最小可能和。  

样例输入 Copy

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

样例输出 Copy

3
31
6
7

提示

在第一个例子中,可以通过以下方法获取数组[1,0,2]:  
1.  选择i=1,j=2,改变a1=1 a2=2,它是有效的,因为1|3=1|2。 数组变成[1,2,2]。  
2.  选择i=2 j=3,改变a2=0 a3=2,它是有效的,因为2|2=0|2。 数组变成[1,0,2]。  
我们可以证明最小和是1+0+2=3  
在第二个例子中,我们不需要任何操作, 就是数组和就是最小的。

来源/分类