제출 #838185

#제출 시각아이디문제언어결과실행 시간메모리
838185BlockOGXORanges (eJOI19_xoranges)C++14
55 / 100
1040 ms7148 KiB
#include <iostream>

using namespace std;

unsigned int o[200008];

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int n, q; cin >> n >> q;
    for (int i = 0; i < n; i++) cin >> o[i];

    for (int it = 0; it < q; it++) {
        int code; cin >> code;
        if (code == 1) {
            int i; cin >> i >> o[--i];
        } else {
            int l, u; cin >> l >> u;
            if (!((u - l + 1) & 1)) {
                cout << 0 << endl;
                continue;
            }

            unsigned int res1 = 0, res2 = 0, res3 = 0, res4 = 0;
            int i = l - 1;
            for (; i < u; i += 8) res1 ^= o[i], res2 ^= o[i + 2], res3 ^= o[i + 4], res4 ^= o[i + 6];
            if (i - 2 >= u) res1 ^= o[i - 2];
            if (i - 4 >= u) res1 ^= o[i - 4];
            if (i - 6 >= u) res1 ^= o[i - 6];
            cout << ((res1 ^ res2) ^ (res3 ^ res4)) << endl;
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...