SZ-TG-057. [CodeChef REBXOR] 尼基托什与异或(Nikitosh and xor)
题目描述
题目描述
画家尼基托什有一个包含 个元素的数组 ,下标从 开始。他希望找出下面这个表达式的最大值:
$$\bigl(A[l_1]\oplus A[l_1+1]\oplus\cdots\oplus A[r_1]\bigr) +\bigl(A[l_2]\oplus A[l_2+1]\oplus\cdots\oplus A[r_2]\bigr)$$其中 ,符号 表示按位异或。
也就是说,需要选择两段非空且不相交的连续子数组,第一段在第二段左边;分别计算两段内所有元素的异或值,再将这两个异或值相加,使结果最大。两段可以相邻,也可以不相邻。
尼基托什是一名画家,而不是数学家,请你帮助他完成这个任务。
输入格式
第一行一个整数 ,表示数组的元素个数。
第二行 个整数 ,用空格分隔。
输出格式
输出一个整数,表示给定表达式能够取得的最大值。
样例输入 1
5
1 2 3 1 2
样例输出 1
6
输入样例 #2
2
0 0
输出样例 #2
0
输入样例 #3
3
1 2 4
输出样例 #3
7
说明/提示
可以选择 ,也可以选择 或 ,都能得到最大值 。
数据范围
对于所有数据,,。
- 子任务 1(40 分):。
- 子任务 2(60 分):无额外限制。