异或和

异或和

Description

给定一个长度为 NN 的序列,第ii个位置的权值为aia_i,从序列中任意选出两个不同的位置 i,j(i<j)i,j(i<j),定义(i,j)(i,j)异或和为 aiai+1...aja_i\oplus a_{i+1}...\oplus a_j,求所有点对 (i,j)(i,j) 的异或和是是多少。

Input

第一行输入一个整数 NN,代表序列元素个数。
第二行 NN 个整数,代表序列中每个数的值。

Output

输出一个整数,代表所有点对的异或和。

Sample Input

2
1 2

Sample Output

Limitation

1s, 1024KiB for each test case.

Hint

对于样例来说,只有一对点对 (1,2)(1,2),因此答案为 1122 的异或值 33
40%: N <= 1000
100%: N <= 100000
100%: a[i] <= 1e9

Source

by - shellpicker

信息

ID
1000
难度
3
分类
(无)
标签
(无)
递交数
14
已通过
2
通过率
14%
上传者

相关

在下列比赛中:

练习赛2

练习赛1