Submission #1179675

#TimeUsernameProblemLanguageResultExecution timeMemory
1179675mishasimXORanges (eJOI19_xoranges)C++20
0 / 100
51 ms6212 KiB
#include <iostream>

using namespace std;
#define endl '\n'

long long n,q,k[200005],res,op,l,u,prefix[200005],prefix1[200005];


int main()
{
    ios_base :: sync_with_stdio(0);cin.tie(0);cout.tie(0);
    cin>>n>>q;
    for(int i = 1 ; i<=n ; i++)
        {
        cin>>k[i];
        if(i%2==1)prefix1[i] = (prefix1[i-2]^k[i]);
        else prefix[i] = (prefix[i-2]^k[i]);
        }
    for(int i = 1 ; i<=q ; i++)
        {
        cin>>op>>l>>u;
        if(op==1)
            {
            k[l] = u;
            for(int j = l ; j<=n ; j++)
                {
                if(j%2==1)prefix1[j] = (prefix1[j-2]^k[j]);
                else prefix[j] = (prefix[j-2]^k[j]);
                }
            }
        else
            {
            res = 0;
            if(l%2==0 && u%2==0)res = prefix[u]^prefix[l-2];
            else if(l%2==1 && u%2==1)res = prefix1[u]^prefix[l-2];
            cout<<res<<endl;
            }
        }
    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...