답안 #348959

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
348959 2021-01-16T07:43:52 Z ali_tavakoli XOR Sum (info1cup17_xorsum) C++14
18 / 100
104 ms 8172 KB
//In The Name Of Allah
#include<bits/stdc++.h>
using namespace std;

typedef long long ll;
#define pb push_back
#define F first
#define S second
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")

const int maxn = 1e6 + 5, mxn = 4e3 + 5;

int n, a[maxn], cnt[maxn];

void sub1()
{
	int ans = 0;
	for(int i = 0; i < n; i++)
		for(int j = i; j < n; j++)
			ans ^= (a[i] + a[j]);
	cout << ans << '\n';
}

void sub2()
{
	int ans = 0;
	for(int i = 0; i < n; i++)
		cnt[a[i]] ++;
	for(int i = 0; i < mxn; i++)
		for(int j = i + 1; j < mxn; j++)
			if((cnt[i] * cnt[j]) & 1)
				ans ^= (i + j);
	//cout << ans << '\n';
	for(int i = 0; i < mxn; i++)
		if((cnt[i] * (cnt[i] - 1) / 2 + cnt[i]) & 1)
			ans ^= (i + i);
	cout << ans << '\n';
}

int main()
{
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	//auto t = clock();
	cin >> n;
	for(int i = 0; i < n; i++)
		cin >> a[i];
	
	if(n <= (4e3))
		sub1();
	else
		sub2();
}
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 364 KB Output is correct
2 Correct 3 ms 364 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 97 ms 4332 KB Output is correct
2 Correct 86 ms 3948 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 97 ms 4332 KB Output is correct
2 Correct 86 ms 3948 KB Output is correct
3 Incorrect 104 ms 8172 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 364 KB Output is correct
2 Correct 3 ms 364 KB Output is correct
3 Runtime error 13 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 364 KB Output is correct
2 Correct 3 ms 364 KB Output is correct
3 Correct 97 ms 4332 KB Output is correct
4 Correct 86 ms 3948 KB Output is correct
5 Incorrect 104 ms 8172 KB Output isn't correct
6 Halted 0 ms 0 KB -