题目描述
给定一个长度为 n(1≤n≤105) 的数列 a1,a2,…,an(0≤ai≤1012)。
你可以删除数列中一段连续的数(这一段连续的数的个数可以从 0 到 n,为 0 则说明一个数都没有删除,为 n 就说明整个数列都删除了)。
你希望使得剩下来的所有数字的异或和最大。求这个最大异或和。
输入格式
第一行,一个整数 n(1≤n≤105)。
第二行,n 个整数 a1,a2,…,an(0≤ai≤1012)。
输出格式
输出一个整数,表示删除一段连续子序列,剩下的前缀和后缀中所有元素的异或和的最大值。
样例
5
1 2 3 4 5
6
说明/提示
样例解释
最优方案是选择删除 [3,4],剩下来的前缀 [1,2] 和后缀 [5] 对应的异或和为 1⊕2⊕5=6。
数据规模与约定
- 对于 30% 的数据,n≤10,ai≤1000
- 对于 60% 的数据,n≤1000,ai≤106
- 对于 100% 的数据,1≤n≤105,0≤ai≤1012