Submission #1219203

#TimeUsernameProblemLanguageResultExecution timeMemory
1219203notarat40XORanges (eJOI19_xoranges)C++20
55 / 100
1093 ms2492 KiB
 
#include <bits/stdc++.h>
#define ll long long
#define pb(a) push_back(a)
#define in(a) insert(a)
#define lldef ll N=0,M=0,K=0,ans=0,sum=0; string s="";
#define loop(valuename,startvalue,endvalue,changevalue) for(ll valuename=startvalue; valuename<endvalue; valuename+=changevalue)
#define rloop(valuename,startvalue,endvalue,changevalue) for(ll valuename=startvalue-1; valuename>=endvalue; valuename-=changevalue)
#define mk make_pair
#define begin begin()
#define end end() 
#define db long double
 
using namespace std;
 
const int SIZE=1e5+69;
const int MOD=1e9+7;

/*
vector<vector<ll>>ADJ(SIZE);
vector<ll>vis(SIZE,0);
 
void dfs(ll vertex){
    vis[vertex]=true;
    for(auto it:ADJ[vertex]){
        if(!vis[it]){
            dfs(it);
        }
    }
}
*/

bool Ptwo(ll N){
    return (~N&N-1)==N-1;
}
ll l=0;
inline void test_case(){
    lldef;
    cin>>N>>M;
    vector<ll>V;
    loop(i,0,N,1){
        ll x;
        cin>>x;
        V.pb(x);
    }
    loop(i,0,M,1){
        ll a,b,c;
        cin>>a>>b>>c;
        if(a==2){
            ll ans1=0;
            loop(j,b,c+1,1){
                if((j-b+1)*(c-j+1)%2==1){
                    ans1=ans1^V[j-1];
                    //cout<<j<<" "<<V[j-1]<<endl;
                }
            }
            cout<<ans1<<endl;
        }else{
            V[b-1]=c;
        }
    }

}

int main(){
    ll t=1;
    //cin>>t;
    while(t--) {test_case(); l++;}
}
#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...