Submission #48544

# Submission time Handle Problem Language Result Execution time Memory
48544 2018-05-15T21:51:46 Z Pajaraja XOR Sum (info1cup17_xorsum) C++17
7 / 100
1600 ms 12972 KB
#include <bits/stdc++.h>
using namespace std;
int a[1000007],c[1000007];
int main()
{
	int n,sol=0;
	scanf("%d",&n);
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	for(int j=0;j<=30;j++)
	{
		int b=(1<<j),bc=0;
		for(int i=1;i<=n;i++) c[i]=a[i]%b;
		for(int i=1;i<=n;i++) if((a[i] | b) == a[i]) bc++;
		long long k=2*bc*(n-bc); 
		sort(c+1,c+n+1);
		int t1=1,t2=n;
		while(t1<=n)
		{
			while(c[t2]+c[t1]>=b) t2--;
			k+=(n-t2);
			t1++;
		}
		for(int i=1;i<=n;i++) if(2*c[i]>=b) k++;
		if((k/2)%2==1) sol+=b;
	}
	printf("%d",sol);
}

Compilation message

xorsum.cpp: In function 'int main()':
xorsum.cpp:7:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&n);
  ~~~~~^~~~~~~~~
xorsum.cpp:8: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("%d",&a[i]);
                        ~~~~~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 10 ms 376 KB Output is correct
2 Correct 11 ms 528 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1675 ms 12972 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1675 ms 12972 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 10 ms 376 KB Output is correct
2 Correct 11 ms 528 KB Output is correct
3 Incorrect 254 ms 12972 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 10 ms 376 KB Output is correct
2 Correct 11 ms 528 KB Output is correct
3 Execution timed out 1675 ms 12972 KB Time limit exceeded
4 Halted 0 ms 0 KB -