제출 #433200

#제출 시각아이디문제언어결과실행 시간메모리
433200Valaki2XORanges (eJOI19_xoranges)C++14
75 / 100
1095 ms4184 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

int n, q;
vector<int> numbers;
vector<int> prefix;

void update() {
    int pos, val;
    cin >> pos >> val;
    numbers[pos] = val;
    prefix[1] = numbers[1];
    for(int i = 2; i <= n; ++i) {
        prefix[i] = prefix[i - 2] ^ numbers[i];
    }
}

void query() {
    int l, r;
    cin >> l >> r;
    if((r - l + 1) % 2 == 0) {
        cout << "0\n";
        return;
    }
    cout << (prefix[r] ^ prefix[l] ^ numbers[l]) << "\n";
}

void solve() {
    cin >> n >> q;
    numbers.assign(1 + n, 0);
    prefix.assign(1 + n, 0);
    for(int i = 1; i <= n; ++i) {
        cin >> numbers[i];
        
        if(i == 1) prefix[i] = numbers[i];
        else prefix[i] = prefix[i - 2] ^ numbers[i];
    }
    while(q--) {
        int type = 0;
        cin >> type;
        if(type == 1) update();
        else query();
    }
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    solve();
    return 0;
}
#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...