제출 #1207588

#제출 시각아이디문제언어결과실행 시간메모리
1207588edga1비밀 (JOI14_secret)C++20
30 / 100
391 ms4408 KiB
#include "secret.h"

using namespace std;

int st[3000];
int a[1005];
int n;

void build(int x, int xl, int xr){
    if(xl==xr){
        st[x]=a[xl];
        return;
    }
    int mid=(xl+xr)/2;
    build(x*2+1,xl,mid);
    build(x*2+2,mid+1,xr);
    st[x]=Secret(st[x*2+1],st[x*2+2]);
}

int get(int x, int xl, int xr, int l, int r){
    if(xl>=l && xr<=r) return st[x];
    if(xr<l || xl>r) return -1;
    int mid=(xl+xr)/2;
    int r1=get(x*2+1,xl,mid,l,r);
    int r2=get(x*2+2,mid+1,xr,l,r);
    if(r1==-1) return r2;
    if(r2==-1) return r1;
    return Secret(r1,r2);
}

void Init(int N, int A[]) {
    n=N;
    for(int i=0; i<n; i++){
        a[i]=A[i];
    }
    build(0,0,n-1);
}

int Query(int L, int R) {
    return get(0,0,n-1,L,R);
}

#Verdict Execution timeMemoryGrader output
Fetching results...