#ATarc098b. [ABC098D] Xor Sum 2

[ABC098D] Xor Sum 2

题目描述

有一个长度为 NN 的整数序列 AA

请你求出满足以下条件的整数对 (l,r)(l, r) 的个数(1lrN1 \leq l \leq r \leq N):

  • $A\_l \operatorname{xor} A\_{l+1} \operatorname{xor} \cdots \operatorname{xor} A\_r = A\_l + A\_{l+1} + \cdots + A\_r$

:::info[xor\operatorname{xor} 的定义]

对于整数 c1,c2,,cmc_1, c_2, \ldots, c_m,它们的 xor\operatorname{xor} 定义如下:

  • xorxor 的值为 XX。将 XX 用二进制表示时,对于每一个 2k2^k 位(0k0 \leq kkk 为整数),如果 c1,c2,,cmc_1, c_2, \ldots, c_m 中在该位为 11 的数的个数为奇数,则 XX 的该位为 11,否则为 00

例如,3355xorxor 值为 66,因为 33 的二进制为 01101155 的二进制为 101101,所以 011xor101=110011 \operatorname{xor} 101 = 110,即 66

:::

输入格式

输入以如下格式从标准输入读入:

NN

A1A_1 A2A_2 \cdots ANA_N

输出格式

输出满足条件的整数对 (l,r)(l, r) 的个数。

样例 1

输入

4
2 5 4 6

输出

5

样例 2

输入

9
0 0 0 0 0 0 0 0 0

输出

45

样例 3

输入

19
885 8 1 128 83 32 256 206 639 16 4 128 689 32 8 64 885 969 1

输出

37

说明/提示

限制条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 0Ai0 \leq A_i
  • 输入均为整数

样例解释 1

显然,(l,r)=(1,1),(2,2),(3,3),(4,4)(l, r) = (1, 1), (2, 2), (3, 3), (4, 4) 都满足条件。此外,当 (l,r)=(1,2)(l, r) = (1, 2) 时,A1xorA2=A1+A2=7A_1 \operatorname{xor} A_2 = A_1 + A_2 = 7,所以也满足条件。没有其他满足条件的组合,因此答案为 55