Submission #1221604

#TimeUsernameProblemLanguageResultExecution timeMemory
1221604mayacXORanges (eJOI19_xoranges)C++20
0 / 100
960 ms4300 KiB
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int main(){
    int n,q,a,b,t,ans;
    cin>>n>>q;
    vector<int> v(n),vxor(n+1,0),yesno0(n+1,0),yesno1(n+1,0);
    for(int i=0;i<n;i++){
        cin>>v[i];
        vxor[i+1]=vxor[i]^v[i];
        if(i%2==0){
            yesno0[i+1]=v[i];
            if(i>0)yesno0[i+1]=v[i]^yesno0[i-1];
        }else{
            yesno1[i+1]=v[i];
            yesno1[i+1]=v[i]^yesno1[i-1];
        }
    }
    while(q--){
        cin>>t>>a>>b;a--;
        if(t==1){
            v[a]=b;
        }else{
            ans=0;
            if((a-b+1)%4==0){
                for(int i=a;i<b;i+=2){
                    ans=ans^v[i];
                }
            }else if(a-b%2==1){
                for(int i=a;i<b;i++){
                    ans=ans^v[i];
                }
            }
        
            cout<<ans<<"\n";
        }
    }
}
#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...