Submission #521956

# Submission time Handle Problem Language Result Execution time Memory
521956 2022-02-03T13:53:10 Z boykut XOR Sum (info1cup17_xorsum) C++14
18 / 100
1600 ms 14144 KB
#include <bits/stdc++.h>

using namespace std ;

long long t[10000001];

void push(int v, int vl, int vr) {

}
void update(int l, int r, int x, int v, int vl, int vr) {

}

int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	int n;
	cin >> n;
	long long a[n];
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	sort(a, a + n);
	if (n <= 4000) {
		long long x = 0;
		for (int i = 0; i < n; i++) {
			for (int j = 0; j <= i; j++) {
				x ^= (a[i] + a[j]);
			}
		}
		cout << x << '\n';
	} else if (*max_element(a, a + n) <= 4000) {
		int N = *max_element(a, a + n);
		vector<int> cnt(N + 1, 0);
		for (int i = 0; i < n; i++) cnt[a[i]]++;
		long long x = 0;
		for (int i = 0; i <= N; i++) {
			if ((cnt[i] * (cnt[i] - 1) / 2 + cnt[i]) & 1)
				x ^= (i + i);
			if (cnt[i] & 1) {
				for (int j = 0; j < i; j++) {
					if (cnt[j] & 1)
						x ^= (i + j);
				}
			}
		}
		cout << x << '\n';
	} else if (*max_element(a, a + n) <= 1000000) {
		int N = *max_element(a, a + n);
		vector<int> cnt(N + 1, 0);
		for (int i = 0; i < n; i++) cnt[a[i]]++;
		long long x = 0;
		for (int i = 0; i <= N; i++) {
			if ((cnt[i] * (cnt[i] - 1) / 2 + cnt[i]) & 1)
				x ^= (i + i);
		}
		vector<int> v;
		for (int i = 0; i <= N; i++) {
			if (cnt[i] & 1) v.push_back(i);
		}
		for (int i = 0; i < v.size(); i++) {
			for (int j = 0; j < i; j++)
				x ^= (v[i] + v[j]);
		}
		cout << x << '\n';
	}
	return 0;
}

Compilation message

xorsum.cpp: In function 'int main()':
xorsum.cpp:61:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |   for (int i = 0; i < v.size(); i++) {
      |                   ~~^~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 7 ms 332 KB Output is correct
2 Correct 5 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 152 ms 8136 KB Output is correct
2 Correct 118 ms 7588 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 152 ms 8136 KB Output is correct
2 Correct 118 ms 7588 KB Output is correct
3 Execution timed out 1682 ms 14144 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 7 ms 332 KB Output is correct
2 Correct 5 ms 332 KB Output is correct
3 Incorrect 16 ms 972 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 7 ms 332 KB Output is correct
2 Correct 5 ms 332 KB Output is correct
3 Correct 152 ms 8136 KB Output is correct
4 Correct 118 ms 7588 KB Output is correct
5 Execution timed out 1682 ms 14144 KB Time limit exceeded
6 Halted 0 ms 0 KB -