题目描述
有一个长度为n的序列a,其中ai(1<=i<=n)的值在输入中给出。 现在您需要执行以下操作若干
次:
选择两个数字ai,aj(1<=i,j<=n)(i=j),从序列中擦除两个数字并写入⎩⎨⎧ai&ajai∣ajai∧aj⎭⎬⎫之一。
例如,序列[1,1,4,5,1,4],选择i=2,j=4,即ai=1,aj=5,擦除并写入ai&aj,新序列
为[1,4,1,4,1];或擦写ai∣aj,新序列为[1,4,1,4,5]; 或擦写ai∧aj,新序列为[1,4,1,4,4]。
现在,求出在执行若干操作后可能的序列和的最大值。
输入格式
在第一行输入一个数字n,表示序列的长度。
下一行有n个数字,表示序列a的值。
输出格式
一个数字,表示答案
样例
输入样例1
5
2 2 4 5 9
输出样例1
22
输入样例2
15
73 13 75 19 223 123 654 223 5543 223 1 22 1 4 4
输出样例2
7201
提示
样例说明
对于样例一,选择i=1,j=3,做按位异或,新序列是[2,5,9,6]; 选择i=1,j=2,做按位
或,新序列是[9,6,7]。 此时总和为22,没有更大的总和。
数据范围
对于30%的数据,保证:1<=n<=5×104。
对于100%的数据,保证:1<=n<=106,0<=ai<=109。
提示:
&∣∧分别表示按位与,按位或,按位异或。
本题读入量较大,请使用较快读入方式。