AT_icpc2013summer_warmingUp_f Maximum Segment XOR
题目描述
异或运算是程序员的常用操作之一。为了测试弟子 wata 的能力,天才程序员 KM 设置了一个问题:给定 $N$ 个整数 $\{a_i\}$,找到一对整数 $s$ 和 $t$($1 \leq s \leq t \leq N$),使得从 $a_s$ 到 $a_t$ 的异或结果 $a_s \oplus a_{s+1} \oplus \ldots \oplus a_t$ 达到最大值。由于 wata 没能解出这个问题,他就请你帮忙解决,作为他优秀的朋友和编程高手。在输入文件中,第一行是整数 $N$($1 \leq N \leq 10^5$),第二行是 $N$ 个整数 $\{a_i\}$($0 \leq a_i$)。你需要输出达到最大异或值的对 $(s, t)$,以及这个最大值。如果有多个符合条件的对,输出其中字典序最小的那一对。
### 示例
输入:
```
5
1 2 3 4 5
```
输出:
```
7 3 4
```
输入:
```
3
3 3 3
```
输出:
```
3 1 1
```
输入:
```
4
1 2 4 8
```
输出:
```
15 1 4
```
输入格式
第一行输入一个整数 $N$,表示整数的数量。
第二行输入 $N$ 个整数,表示数组 $\{a_i\}$。
输出格式
输出一行,包含三个整数:最大异或值和对应的下标对 $(s, t)$。
说明/提示
- 数字 $N$ 的范围是 $1 \leq N \leq 10^5$
- 数组中的整数 $a_i$ 满足 $0 \leq a_i$
**本翻译由 AI 自动生成**