#184. 区间异或和
区间异或和
Description
给出一个数组 A: A[1], A[2], ..., A[N],元素均为非负整数。
任选一个区间,会有 N(N+1)/2 种选法。
对每个区间,将区间内的所有元素进行异或求和,将会得到 N(N+1)/2 个结果(可能有重复的结果)。
请你输出其中最大的结果,并输出对应区间的起点和终点。
如果有多个区间满足条件,你只需要输出区间终点最靠前的那个区间。
如果仍有多个区间满足条件,你只需要输出区间长度最短的那个区间。
Input
第一行:一个整数 N
接下来 N 行:每行一个整数,依次表示 A[1], A[2], ..., A[N]
Output
一行,三个整数,依次表示最大异或和、区间起点、区间终点
Sample Input
5
1
0
5
4
2
Sample Output
6 4 5
Data Size
共 10 个测试点,全部满足:1 ≤ N ≤ 100,000, 0 ≤ A[i] < 2^21。
其中:
- 测试点 1:N ≤ 100
- 测试点 2:N ≤ 1,000
- 测试点 3:N ≤ 10,000
- 测试点 4-10:N ≤ 100,000
相关
在下列比赛中: