1193. 子段异或

输入一个数列 a,你需要输出其中异或值为 0 的不同子段的数量。一个子段 [l,r] \ (1≤l≤r≤n) 的异或值为 a[l] \oplus a[l+1] \oplus a[l+2] \oplus \ldots\oplus a[r],其中 \oplus 符号代表异或运算。

两个子段被视为相同当且仅当其开始和结束位置均对应相同。

输入

第一行一个整数 n \ (1 \leq n≤200000),代表数列长度。

第二行 n \ (0≤a_i≤2^{30}−1) 个整数,代表数列 a

输出

输出一个整数,代表答案。

样例

标准输入 复制文本
5
1 2 3 2 1
标准输出 复制文本
2

来源

2020 牛客寒假算法基础集训营

登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 48
通过 22