SP12726 QN01 - XOR Game
题目描述
现有一个长度为 $n$ 的整数数组($0 \le n \le 1000$),需要从中找到一个连续的子数组 $[a_i, a_j]$($1 \le i, j \le n$),使得这个子数组的异或和最大。也就是说,要找到一段 $a_i \text{ XOR } a_{i+1} \text{ XOR } \ldots \text{ XOR } a_j$ 的值最大的连续子数组。
### 输入格式
测试用例包含两行数据。
第一行是一个整数 $n$,代表数组中整数的数量。
第二行是 $n$ 个空格分隔的整数,表示数组中的元素 $a_i$。注意,这些整数可以重复出现。
### 输出格式
输出分为两行。
第一行输出最大异或值。
第二行输出两个整数 $i$ 和 $j$,用空格分隔,表示区间 $[a_i, a_j]$(含两端点),该区间为最大异或值的连续子数组。
如果有多个子数组能达到相同的最大异或值,则输出字典序最小的两个数 $(i, j)$。即满足 (i) $a < c$,或 (ii) $a = c$ 且 $b < d$。
**注意**:子数组不能是空的,可以只包含一个整数(即 $i = j$)。
### 示例
```
输入 #1:
1
4
```
```
输出 #1:
4
1 1
```
```
输入 #2:
3
1 2 3
```
```
输出 #2:
3
1 2
```
**说明**:
1. 在第一个示例中,数组中只有一个数字 4,所以最大异或就是它本身,$i = j = 1$。
2. 在第二个示例中,最大异或值为 3,对应有两个连续子数组:(i) $[1, 2]$ 因为 $1 \text{ XOR } 2 = 3$,和 (ii) $[3, 3]$,只有一个数字 3。因为 $[1, 2]$ 的字典序比 $[3, 3]$ 小,所以输出为 $[1, 2]$。
输入格式
无
输出格式
无
说明/提示
- 数组元素个数 $0 \le n \le 1000$
- 数组中每个元素的值 $0 \le a_i \le 10^9$
**本翻译由 AI 自动生成**