题意:
思路:
AC代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+10;
int a[N],b[N];
int n;
int check(int x,int y){
if(x>y)return 0;
int num=0;
int i,l,r;
for(int i=n,l=1,r=1;i;--i){
while(l<=n&&b[i]+b[l]<x)l++;
while(r<=n&&b[i]+b[r]<=y)r++;
num+=r-l-(l<=i&&i<r);
}
return (num>>1)&1;
}
void solve(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
int sum=0;
for(int i=1;i<=26;i++){
for(int j=1;j<=n;j++){
b[j]=a[j]%(1<<i);
}
sort(b+1,b+n+1);
int num=check(1<<(i-1),(1<<i)-1)^check(3<<(i-1),(1<<(i+1))-2);
sum+=num*(1<<(i-1));
}
cout<<sum<<"\n";
}
signed main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t;
t=1;
// cin>>t;
while(t--){
solve();
}
}