#include <bits/stdc++.h>
using namespace std;
int main() {
int arr[]= {10,5,2,7,1,9};
int n=sizeof(arr)/sizeof(arr[0]);
int k=15;
int pairs=0;
vector<int> prefixXor(n);
prefixXor[0]=arr[0];
for(int i=1;i<n;i++)
prefixXor[i]=prefixXor[i-1]^arr[i];
unordered_map<int, int> mp;
mp[0]=1;
for(int j=0;j<n;j++){
int toFind=prefixXor[j]^k;
pairs+=mp[toFind];
mp[prefixXor[j]]++;
}
cout<<pairs;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWludCBhcnJbXT0gezEwLDUsMiw3LDEsOX07CglpbnQgbj1zaXplb2YoYXJyKS9zaXplb2YoYXJyWzBdKTsKCWludCBrPTE1OwoJaW50IHBhaXJzPTA7Cgl2ZWN0b3I8aW50PiBwcmVmaXhYb3Iobik7CglwcmVmaXhYb3JbMF09YXJyWzBdOwoJZm9yKGludCBpPTE7aTxuO2krKykKCQlwcmVmaXhYb3JbaV09cHJlZml4WG9yW2ktMV1eYXJyW2ldOwoJdW5vcmRlcmVkX21hcDxpbnQsIGludD4gbXA7CgltcFswXT0xOwoJZm9yKGludCBqPTA7ajxuO2orKyl7CgkJaW50IHRvRmluZD1wcmVmaXhYb3Jbal1eazsJCgkJcGFpcnMrPW1wW3RvRmluZF07CgkJbXBbcHJlZml4WG9yW2pdXSsrOwoJfQoJY291dDw8cGFpcnM7CglyZXR1cm4gMDsKfQo=