Submission #1101047

# Submission time Handle Problem Language Result Execution time Memory
1101047 2024-10-15T12:27:09 Z Kirill22 XOR Sum (info1cup17_xorsum) C++17
0 / 100
1600 ms 22788 KB
#include "bits/stdc++.h"

using namespace std;

void solve() {
    int n;
    cin >> n;
    vector<int> a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    long long ans = 0;
    for (int bit = 0; bit <= 31; bit++) {
        long long cnt = 0;
        vector<vector<int>> bucket(2);
        for (auto& x : a) {
            bucket[x % 2].push_back(x % (1 << bit));
        }
        std::sort(bucket[0].begin(), bucket[0].end());
        std::sort(bucket[1].begin(), bucket[1].end());
        for (auto [_, __] : vector<pair<int, int>>{{0, 0}, {1, 1}}) {
            auto l = bucket[_];
            auto r = bucket[__];
            int uk = 0;
            for (int i = (int) r.size() - 1; i >= 0; i--) {
                while (uk < (int) l.size() && l[uk] + r[i] < (1 << bit)) uk++;
                cnt += (int) l.size() - uk;
            }
        }
        for (auto [_, __] : vector<pair<int, int>>{{0, 1}, {1, 0}}) {
            auto l = bucket[_];
            auto r = bucket[__];
            int uk = 0;
            for (int i = (int) r.size() - 1; i >= 0; i--) {
                while (uk < (int) l.size() && l[uk] + r[i] < (1 << bit)) uk++;
                cnt += uk;
            }
            break;
        }
        if (cnt % 2) {
            ans ^= (1 << bit);
        }
    }
    cout << ans << '\n';
}

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t = 1;
//    cin >> t;
    while (t--) {
        solve();
    }
}
# Verdict Execution time Memory Grader output
1 Incorrect 7 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1627 ms 22788 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1627 ms 22788 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 7 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 7 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -