#p1032. 习题9.2.8 超级牛

习题9.2.8 超级牛

题目描述

现在有N(1 <= N <= 2000)头奶牛在玩 超级牛 游戏。每头奶牛有一个唯一的ID,ID范围是 1 ... 2 ^ 30-1。

超级牛比赛是淘汰赛 - 每场比赛后,输者退赛,赢者继续留在比赛,直到只剩一队游戏结束。 输赢是FJ自己决定的,或者说结果可以任意决定!

比赛的积分规则十分奇葩:积分=第一队的ID XOR 第二队的ID。 比如,12队和20队打比赛,积分是24,因为01100 XOR 10100 = 11000。

FJ认为,分越高越刺激。所以他想让总积分最高。请帮助FJ设计比赛。

输入格式

第一行包含一个整数N

以下N行包含N个队伍的ID。

输出格式

一行,一个整数,表示答案。

样例数据

input

4
3
6
9
10

output

37

输出详情:实现37的一种方法如下:

3 VS 9 ==》9胜,本场积分 3 XOR 9 = 10,目前队伍:6 9 10

6 VS 9 ==》6胜,本场积分 6 XOR 9 = 15,目前队伍:6 10

6 VS 10 ==》管他谁胜呢反正不用再比赛了,本场积分 6 XOR 10 = 12

总积分 10 + 15 + 12 = 37。

团队6和10面脱落,和队10胜。

拿下点的总数是(10)+(15)+(12)=

注:按位异或运算,由^符号通常表示,是进行逻辑异或运算的两个二进制整数的每个位置逐位操作。 规则如下 0 xor 0 = 0 0 xor 1 = 1 1 xor 0 = 1 1 xor 1 = 0 例如:

10100(十进制20)
XOR
01100(十进制12)
=======================
11000(十进制24)

数据规模与约定

保证a,b109a,b \leq 10^9。 时间限制:1s1 \text {s}

空间限制:256MB256 \text {MB}