Submission #675916

#TimeUsernameProblemLanguageResultExecution timeMemory
675916KubetiXORanges (eJOI19_xoranges)C++14
55 / 100
459 ms7660 KiB
#include <iostream>
#include <vector>
#define int long long
using namespace std;
int v[1000001], s[5][1000001];
int32_t main() {
    int n, q;
    cin>>n>>q;
    for(int i=1; i<=n; i++){
        cin>>v[i];
        s[i%2][i] = v[i];
    }
    if(n <= 5000){
        for(int i=0; i<q; i++){
            int t;
            cin>>t;
            if(t == 1){
                int x, y;
                cin>>x>>y;
                v[x] = y;
            }
            else{
                int x, y;
                cin>>x>>y;
                if(abs(x-y)%2 == 1){
                    cout<<0<<'\n';
                }
                else{
                    int sum=0;
                    for(;x<=y;x+=2)
                        sum^=v[x];
                    cout<<sum<<'\n';
                }
            }
        }
    }
    else{
        for(int i=2; i<=n; i++){
            s[i%2][i] ^= s[i%2][i-2];
        }
        for(int h=0; h<q; h++){
            int t, x, y;
            cin>>t>>x>>y;
            if(abs(x-y)%2 == 1){
                cout<<0<<'\n';
                continue;
            }
            int ans = s[y%2][y]^s[x%2][x-1]<<'\n';
            cout<<ans<<'\n';
        }
    }
    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...