| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 68029 | top34051 | XOR Sum (info1cup17_xorsum) | C++17 | 1673 ms | 15676 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 5;
const int mlog = 28;
int n;
int a[maxn];
int main() {
	scanf("%d",&n);
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	int ans = 0;
	for(int i=0;i<=mlog;i++) {
		int pw = (1<<i);
//		printf("pw = %d\n",pw);
		vector<int> b[2];
		for(int x=1;x<=n;x++) {
//            printf("\ti = %d  %d\n",a[x],(a[x]/pw)%2);
            b[(a[x]/pw)%2].push_back(a[x]%pw);
		}
		sort(b[0].begin(),b[0].end()); int sz0 = b[0].size();
		sort(b[1].begin(),b[1].end()); int sz1 = b[1].size();
//        printf("\t");
//		for(auto t : b[0]) printf("%d ",t);
//		printf("\n");
//        printf("\t");
//		for(auto t : b[1]) printf("%d ",t);
//		printf("\n");
		int cnt1 = 0, cnt2 = 0, cnt3 = 0;
		//tx = 0 ty = 0
		//2^i <= b[x] + b[y] (< 2^(i+1))
		for(int x=0,y=sz0;x<sz0;x++) {
			while(y-1 >= 0 && pw <= b[0][x] + b[0][y-1]) y--;
			cnt1 += sz0-y;
		}
		for(auto t : b[0]) if(pw <= t*2) cnt1++;
		cnt1 /= 2;
		//tx = 0 ty = 1
		//b[x] + b[y] < 2^i
		for(int x=sz0-1,y=-1;x>=0;x--) {
			while(y+1 < sz1 && b[0][x] + b[1][y+1] < pw) y++;
			cnt2 += y+1;
		}
		//tx = 1 ty = 1
		//2^i <= b[x] + b[y] (< 2^(i+1))
		for(int x=0,y=sz1;x<sz1;x++) {
			while(y-1 >= 0 && pw <= b[1][x] + b[1][y-1]) y--;
			cnt3 += sz1-y;
		}
		for(auto t : b[1]) if(pw <= t*2) cnt3++;
		cnt3 /= 2;
		if((cnt1+cnt2+cnt3)&1) ans += pw;
	}
	printf("%d",ans);
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
