/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
int[] arr = new int[]{4, 2, 2, 6, 4};
int target = 6;
long result = subarrayXor(arr,target);
}
public static long subarrayXor(int arr[], int k) {
// code here
int currentXor = 0;
Map
<Integer,Integer
> map
= new HashMap
<>(); map.put(0,1);
long count = 0;
for(int i =0;i<arr.length;i++){
currentXor ^= arr[i];
if(map.containsKey(currentXor^k)){
count+=map.get(currentXor^k);
}
map.put(currentXor,map.getOrDefault(currentXor,0)+1);
}
return count;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCgkJaW50W10gYXJyID0gbmV3IGludFtdezQsIDIsIDIsIDYsIDR9OwoJCWludCB0YXJnZXQgPSA2OwoJCWxvbmcgcmVzdWx0ID0gc3ViYXJyYXlYb3IoYXJyLHRhcmdldCk7CgkJU3lzdGVtLm91dC5wcmludGxuKHJlc3VsdCk7Cgl9CgogICAgcHVibGljIHN0YXRpYyBsb25nIHN1YmFycmF5WG9yKGludCBhcnJbXSwgaW50IGspIHsKICAgICAgICAvLyBjb2RlIGhlcmUKICAgICAgICBpbnQgY3VycmVudFhvciA9IDA7CiAgICAgICAgCiAgICAgICAgTWFwPEludGVnZXIsSW50ZWdlcj4gbWFwID0gbmV3IEhhc2hNYXA8PigpOwogICAgICAgIG1hcC5wdXQoMCwxKTsKICAgICAgICBsb25nIGNvdW50ID0gMDsKICAgICAgICBmb3IoaW50IGkgPTA7aTxhcnIubGVuZ3RoO2krKyl7CiAgICAgICAgICAgIGN1cnJlbnRYb3IgXj0gYXJyW2ldOyAgICAKICAgICAgICAgICAgaWYobWFwLmNvbnRhaW5zS2V5KGN1cnJlbnRYb3JeaykpewogICAgICAgICAgICAgICAgY291bnQrPW1hcC5nZXQoY3VycmVudFhvcl5rKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBtYXAucHV0KGN1cnJlbnRYb3IsbWFwLmdldE9yRGVmYXVsdChjdXJyZW50WG9yLDApKzEpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICByZXR1cm4gY291bnQ7CiAgICB9CgoKfQ==