RT,求调
#include<bits/stdc++.h>
using namespace std;
int n,ans,a[400005],b[400005];
bool check(int x,int y)
{
if(x>y)return 0;
int num=0;
for(int i=1;i<=n;i++)
{
int l=1,r=1;
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;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
for(int i=0;i<=25;i++)
{
for(int j=1;j<=n;j++)b[j]=a[j]&((1<<(i+1))-1);
sort(b+1,b+n+1);
int flag=check(1<<i,(1<<(i+1))-1)^check(3*(1<<i),(1<<(i+2))-2);
ans+=flag*(1<<i);
}
printf("%d",ans);
return 0;
}