题目描述
N 個の非負整数 A1, A2, ..., AN があります。
このうち 1 個以上 N−1 個以下を赤色で、残りを青色で塗り分けることを考えます。
塗り分けの 美しさ を、「赤く塗った整数の XOR」と「青く塗った整数の XOR」の和とします。
塗り分けの美しさの最大値を求めてください。
XOR とは n 個の非負整数 x1,x2, …, xn の XOR x1 ⊕ x2 ⊕ … ⊕ xn は以下のように定義されます。
- x1 ⊕ x2 ⊕ … ⊕ xn を二進表記した際の 2k(k ≥ 0) の位の数は x1,x2, …, xn のうち、二進表記した際の 2k(k ≥ 0) の位の数が 1 となるものの個数が奇数ならば 1、そうでなければ 0 となる。
例えば、3 ⊕ 5 = 6 となります。
输入格式
入力は以下の形式で標準入力から与えられます。
N A1 A2 ... AN
输出格式
塗り分けの美しさの最大値を出力してください。
题目大意
给定 n 个非负整数,将它们分成两组。记其中一组异或和为 a,令一组异或和为 b,求 a+b 的最大值。
提示
制約
- 入力はすべて整数
- 2 ≤ N ≤ 105
- 0 ≤ Ai < 260 (1 ≤ i ≤ N)
Sample Explanation 1
(3, 6, 5) をそれぞれ (青, 赤, 青) で塗り分けたとき、美しさは (6) + (3 ⊕ 5) = 12 になります。 12 よりも高い美しさの塗り分けは存在しないので、答えは 12 です。
Sample Explanation 3
Ai や答えは 32 ビット整数型に収まらないことがあります。