There is an integer sequence A of length N.
Find the number of the pairs of integers l and r (1≤l≤r≤N) that satisfy the following condition:
Here, xor denotes the bitwise exclusive OR.
Definition of XOR
The XOR of integers c1,c2,…,cm is defined as follows:
For example, let us compute the XOR of 3 and 5. The binary representation of 3 is 011, and the binary representation of 5 is 101, thus the XOR has the binary representation 110, that is, the XOR is 6.
Constraints
Input
Input is given from Standard Input in the following format:
N
A1 A2 … AN
Output
Print the number of the pairs of integers l and r (1≤l≤r≤N) that satisfy the condition.
Sample Input 1
4
2 5 4 6
Sample Output 1
5
(l,r)=(1,1),(2,2),(3,3),(4,4) clearly satisfy the condition. (l,r)=(1,2) also satisfies the condition, since A1 xor A2=A1 + A2=7. There are no other pairs that satisfy the condition, so the answer is 5.
Sample Input 2
9
0 0 0 0 0 0 0 0 0
Sample Output 2
45
Sample Input 3
19
885 8 1 128 83 32 256 206 639 16 4 128 689 32 8 64 885 969 1
Sample Output 3
37
#include
using namespace std;
const int maxn=2e5+5;
long long f[maxn],s[maxn];
long long ans;
int main()
{
int n,x;
scanf("%d",&n);
f[0]=0,s[0]=0;
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
f[i]=f[i-1]+x;
s[i]=s[i-1]^x;
}
int L=1;
ans=0;
for(int R=1;R<=n;R++)
{
while((f[R]-f[L-1])!=(s[R]^s[L-1])) L++;
ans+=R-L+1;
}
printf("%lld\n",ans);
}