XH-ENERGY-GEMS. 能量宝石

提交1 通过1
通过率100%
时间限制1000ms
内存限制256MiB

题目描述

题目描述

小婷有 nn 颗宝石排成一排,第 ii 颗宝石的能量值为 aia_i。定义一个区间 [l,r] (1≤l≤r≤n)[l,r]\ (1\le l\le r\le n) 的异或和为

al⊕al+1⊕⋯⊕ar,a_l\oplus a_{l+1}\oplus\cdots\oplus a_r,

其中 ⊕\oplus 表示二进制按位异或。

小泽想要从中选取最长的连续一段宝石制作项链。为了保证项链能量的稳定性,这段宝石中不能存在任何一个非空连续区间的异或和为 00。换句话说,对于选取的任意区间 [l′,r′][l',r'],都必须满足

$$a_{l'}\oplus a_{l'+1}\oplus\cdots\oplus a_{r'}\ne 0.$$

小婷和小泽想知道,最长能选取多长的一段?

例如,对于序列 [1,2,3,4][1,2,3,4],只能选取长度为 33 的段,因为长度为 44 的区间不符合要求,其中子区间 [1,3][1,3] 的异或和为 00。

你需要帮助小婷和小泽求出他们能选取的最长长度。

输入格式

输入的第一行包含一个整数 nn,表示宝石的数量。

输入的第二行包含 nn 个非负整数 a1,a2,…,ana_1,a_2,\ldots,a_n,表示每颗宝石的能量值。

输出格式

输出一行一个非负整数,表示小婷和小泽能选取的最长长度。

输入

4
1 2 3 4

输出

3

输入

6
1 5 9 2 6 5

输出

6

输入

10
100 8 2 7 8 4 1 16 3 8

输出

8

说明/提示

样例 11 解释:

长度为 22 的段 [2,3][2,3],其异或和为 2⊕3=1≠02\oplus 3=1\ne 0,且其子区间 [2,2][2,2]、[3,3][3,3] 的异或和分别为 22、33,均不为 00,合法。

长度为 33 的段 [2,4][2,4] 的异或和为 2⊕3⊕4=52\oplus 3\oplus 4=5,且其子区间 [2,3][2,3] 的异或和为 1≠01\ne 0,[3,4][3,4] 的异或和为 7≠07\ne 0,[2,2][2,2]、[3,3][3,3]、[4,4][4,4] 也均不为 00,所以 [2,4][2,4] 是合法的,长度为 33。实际该序列的最长合法段为 [2,4][2,4],长度为 33。

长度为 44 的段 [1,4][1,4] 的异或和为 1⊕2⊕3⊕4=41\oplus 2\oplus 3\oplus 4=4,但存在子区间 [1,3][1,3] 异或和为 00,不合法。

样例 22 解释:所有长度的连续区间的异或和均不为 00,即选择全部的 66 个元素即为最长段。

样例 33 解释:最长的一段为 [2,7,8,4,1,16,3,8][2,7,8,4,1,16,3,8],该段中所有子段的异或和均不为 00。

数据范围

对于 100%100\% 的数据,1≤n≤5×1051\le n\le 5\times 10^5,0≤ai≤2200\le a_i\le 2^{20}。

本题共 2020 个测试点,每个测试点 55 分。各测试点的数据范围如下:

测试点编号 n≤n\le 特殊性质
1∼21\sim 2 3030 A
3∼43\sim 4 无
5∼65\sim 6 100100 B
7∼87\sim 8 无
99 500500 B
10∼1210\sim 12 无
13∼1413\sim 14 5×1035\times 10^3 C
15∼1615\sim 16 无
1717 5×1055\times 10^5 C
18∼2018\sim 20 无

特殊性质 A:所有 aia_i 都是 22 的幂且互不相同。

特殊性质 B:所有 aia_i 都相等。

特殊性质 C:ai∈{0,1}a_i\in\{0,1\}。