Submission #1207594

#TimeUsernameProblemLanguageResultExecution timeMemory
1207594ricardsjansonsSecret (JOI14_secret)C++20
0 / 100
337 ms4396 KiB
#include "secret.h"
#include <bits/stdc++.h>
using namespace std;

const int N=1<<10;

vector<int>segt(N*2,-1);

void upd(int i,int x){
    i+=N;
    segt[i]=x;
    for(i/=2;i;i/=2){
        if(segt[i*2]<0||segt[i*2+1]<0){
            break;
        }
        segt[i]=Secret(segt[i*2],segt[i*2+1]);
    }
}

void Init(int n, int a[]) {
    for(int i=0;i<n;i++){
        upd(i,a[i]);
    }
}

int Query(int l, int r) {
    l+=N;
    r+=N;
    vector<int>v;
    while(l<=r){
        if(l%2==1){
            v.push_back(segt[l++]);
        }
        if(r%2==0){
            v.push_back(segt[r--]);
        }
        l/=2;
        r/=2;
    }
    int res=v.front();
    for(int i=1;i<v.size();i++){
        res=Secret(res,v[i]);
    }
    return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...