fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. long subarrayXor(vector<int> &arr, int k) {
  5. // code here
  6. int prefXor = 0;
  7. long count = 0;
  8. unordered_map<int, int> freq;
  9.  
  10. for(int i : arr){
  11. prefXor ^= i;
  12. int temp = prefXor ^ k;
  13. if(prefXor == k) count++;
  14.  
  15. if(freq.find(temp) != freq.end()){
  16. count += freq[temp];
  17. }
  18.  
  19. freq[prefXor]++;
  20. }
  21.  
  22. return count;
  23.  
  24. }
  25.  
  26. int main() {
  27. // your code goes here
  28. vector<int> arr = {4, 2, 2, 6, 4};
  29. cout << subarrayXor(arr, 6);
  30. return 0;
  31. }
Success #stdin #stdout 0s 5324KB
stdin
Standard input is empty
stdout
4