Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long int big;
- int main(){
- // freopen("i.txt","r",stdin);
- // freopen("o.txt","w",stdout);
- big t=1;
- cin>>t;
- while(t--){
- big n;
- cin>>n;
- vector<big> arr(n);
- for(big i=0;i<n;i++){
- cin>>arr[i];
- }
- vector<big> pref(n);
- pref[0]=arr[0];
- for(big i=1;i<n;i++){
- pref[i]=arr[i]^pref[i-1];
- }
- // dbr("pref",pref);
- big result=0;
- map<big,pair<big,big>> mp;
- mp[0]={1,0};
- for(big i=0;i<n;i++){
- big count=mp[pref[i]].first;
- big sum=mp[pref[i]].second;
- result=result+(count*(i+1)-sum-count);
- mp[pref[i]].first++;
- mp[pref[i]].second=mp[pref[i]].second+(i+1);
- }
- cout<<result<<endl;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment