Submission #1221571

#TimeUsernameProblemLanguageResultExecution timeMemory
1221571mayacXORanges (eJOI19_xoranges)C++20
0 / 100
302 ms7916 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];
        }
    }
    for(int i=0;i<=n;i++){
        cout<<yesno0[i]<<" "<<yesno1[i]<<"\n";
    }
    while(q--){
        cin>>t>>a>>b;a--;
        if(t==1){
            v[a]=b;
        }else{
            
            if((b-a+1)%4==0){
                if(a%2==1){
                    cout<<(yesno1[a-1]^yesno1[b]);
                }else{
                    if(a>0){
                        cout<<(yesno0[a-1]^yesno0[b]);
                    }else{
                        cout<<yesno0[b];
                    }
                }
            }else{
                cout<<(vxor[a]^vxor[b]);
            }
        
            cout<<"\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...