题目描述
贝西和她的朋友们正在参加一年一度的超级公牛锦标赛,农夫约翰负责使锦标赛旧能激动人心。共有N(1<=N<=2000)支球队在Superbull比赛。每个团队分配一个不同的整数团队ID,范围为1...230−1以区别于其他球队。超级牛是一种淘汰赛——每场比赛结束后,农夫约翰选择要从超级牛中淘汰的球队,被淘汰的球队不能再参加任何比赛。当只剩下一支球队时,超级公牛队就结束了。
农夫约翰注意到一个关于比赛分数的非常不寻常的属性!在任何游戏中,两队的总分最终总是两个队ID的位异或(XOR)。例如,如果第12队和第20队比赛,那么该场比赛将得到24分,因为01100 XOR 10100=11000。
法默·约翰认为,一场比赛得分越多,比赛就越精彩。因此,他希望选择一系列比赛,以使超级牛的总得分最大化。请帮助农民约翰组织比赛。
输入格式
第一行包含单个整数N。以下N行包含N个团队ID。
输出格式
输出在Superbull中可以得分的最大可能点数。
样例
输入样例
4
3
6
9
10
输出样例
37
提示
输出详细信息:
实现37的一种方法如下:FJ与第3和第9队比赛,并决定9胜,因此比赛中剩下第6、9和10队。然后他与第6队和第9队比赛,让第6队获胜。第6队和第10队将留在锦标赛中。最后,6队和10队对决,10队获胜。得分总数为(3XOR9)+(6 XOR 9)+(6 XOR 10)=10+15+12=37。
注:位异或运算通常由^符号表示,是对两个二进制整数中的每个位置执行逻辑异或运算的位运算。如果只有第一位为1或只有第二位为1,则每个位置的结果为1;如果两位均为0或两位均为1,则结果为0。例如:10100(十进制20)XOR01100(十进制12)=11000(十进制24)