답안 #67751

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
67751 2018-08-15T09:31:23 Z ekrem XOR Sum (info1cup17_xorsum) C++
7 / 100
1600 ms 4232 KB
#include <bits/stdc++.h>
#define st first
#define nd second
#define mp make_pair
#define pb push_back
#define N 1000005
using namespace std;

int n, a[N], top, ans, ans2;

void yz(int bit){
	if(bit == 0)return;
	yz(bit/2);
	printf("%d",bit%2);
}

void yaz(int bit){
	yz(bit);
	puts("");
}

int main() {
	// freopen("in.txt", "r", stdin);
	// freopen("out.txt", "w", stdout);
	scanf("%d",&n);
	for(int i = 1; i <= n; i++){
		scanf("%d", a + i);
		// yaz(a[i]);
		top += a[i];
	}
	// cout << "AMK" << ((a[1] + a[2])^(a[1] + a[1])) << endl;
	// cout <<(a[1]^a[2]) << endl;
	// puts("");
	for(int i = 1; i <= n; i++)
		ans ^= (1 - n%2)*a[i];
	for(int i = 1; i <= n; i++)
		for(int j = i; j <= n; j++){

			int zorla = 0;
			for(int k = 0; (1<<k) <= a[i] or (1<<k) <= a[j]; k++){
				if(a[i]&(1<<k) and a[j]&(1<<k))
					zorla |= (1<<k);
				if(k > 0 and (a[i]|a[j])&(1<<k) and zorla & (1<<(k - 1)))
					zorla |= (1<<k);
			}

			// yaz(a[i]);
			// yaz(a[j]);
			// yaz(a[i] + a[j]);
			// // yaz( (a[i]|a[j])*2 );
			// yaz(a[i]^a[j] ^ ((zorla)*2) );
			// puts("");
			ans ^= ((zorla)*2);
		}
	// yaz(ans);
	// yaz(ans2);
	printf("%d\n",ans);
	return 0;
}

Compilation message

xorsum.cpp: In function 'int main()':
xorsum.cpp:25:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&n);
  ~~~~~^~~~~~~~~
xorsum.cpp:27:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", a + i);
   ~~~~~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1524 ms 376 KB Output is correct
2 Correct 1466 ms 396 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1668 ms 4232 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1668 ms 4232 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1524 ms 376 KB Output is correct
2 Correct 1466 ms 396 KB Output is correct
3 Execution timed out 1654 ms 4232 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1524 ms 376 KB Output is correct
2 Correct 1466 ms 396 KB Output is correct
3 Execution timed out 1668 ms 4232 KB Time limit exceeded
4 Halted 0 ms 0 KB -