Submission #81687

# Submission time Handle Problem Language Result Execution time Memory
81687 2018-10-26T07:31:13 Z farukkastamonuda XOR Sum (info1cup17_xorsum) C++14
100 / 100
1209 ms 62936 KB
#include <bits/stdc++.h>
#define fi first
#define se second
#define lo long long 
#define inf 1000000000
#define md 1000000007
#define li 1000005
#define mp make_pair
#define pb push_back
#define pi pair<lo int, int>
using namespace std;
lo int n,A[li],c[li],t,gg,sum;
int main(){
	scanf("%lld",&n);
	for(int i=1;i<=n;i++) scanf("%lld",&A[i]);
	for(int i=0;i<=30;i++){
		int b=(1<<i);
		t=0;
		gg=0;
		if(i){
			for(int j=1;j<=n;j++){
				if((A[j]|(1<<(i-1)))!=A[j]) c[++t]=A[j];
			}
		}
		if(i){
			for(int j=1;j<=n;j++){
				if((A[j]|(1<<(i-1)))==A[j]) c[++t]=A[j];
			}
		}
		if(i){
			for(int j=1;j<=n;j++){
				A[j]=c[j];
				c[j]%=b;
			}
		}
		for(int j=1;j<=n;j++){
			if((A[j]|b)==A[j]) gg++;
		}
		lo int t1=1,t2=n,k=0;
		while(t1<=n){
			while(c[t1]+c[t2]>=b) {t2--;}	
			k+=n-t2;
			t1++;
		}
		for(int j=1;j<=n;j++){
			if(c[j]*2>=b) k++;
		}
		if((k/2+gg*(n-gg))%2==1) sum+=b;
	}
	printf("%lld\n",sum);
	return 0;
}

Compilation message

xorsum.cpp: In function 'int main()':
xorsum.cpp:14:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld",&n);
  ~~~~~^~~~~~~~~~~
xorsum.cpp:15:29: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(int i=1;i<=n;i++) scanf("%lld",&A[i]);
                        ~~~~~^~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 7 ms 376 KB Output is correct
2 Correct 7 ms 540 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 874 ms 16060 KB Output is correct
2 Correct 799 ms 19376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 874 ms 16060 KB Output is correct
2 Correct 799 ms 19376 KB Output is correct
3 Correct 1045 ms 27328 KB Output is correct
4 Correct 964 ms 33176 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 7 ms 376 KB Output is correct
2 Correct 7 ms 540 KB Output is correct
3 Correct 120 ms 33176 KB Output is correct
4 Correct 121 ms 33176 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 7 ms 376 KB Output is correct
2 Correct 7 ms 540 KB Output is correct
3 Correct 874 ms 16060 KB Output is correct
4 Correct 799 ms 19376 KB Output is correct
5 Correct 1045 ms 27328 KB Output is correct
6 Correct 964 ms 33176 KB Output is correct
7 Correct 120 ms 33176 KB Output is correct
8 Correct 121 ms 33176 KB Output is correct
9 Correct 1209 ms 44100 KB Output is correct
10 Correct 1202 ms 53468 KB Output is correct
11 Correct 1206 ms 62936 KB Output is correct