제출 #1272000

#제출 시각아이디문제언어결과실행 시간메모리
1272000ezzzay비밀 (JOI14_secret)C++20
0 / 100
333 ms4428 KiB
#include "secret.h"
#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
vector<int>a;
int n;
int st[5000];
void build(int node, int L, int R){
    if(L==R){
        st[node]=a[L];
        return;
    }
    int mid=(L+R)/2;
    build(node*2,L,mid);
    build(node*2+1,mid+1,R);
    st[node]=Secret(st[node*2],st[node*2+1]);
}
int find(int node, int L, int R, int l, int r){
    if(l<=L and R<=r)return node;
    if(l>R or L>r)return -1;
    int mid=(L+R)/2;
    int x=find(node*2,L,mid,l,r);
    int y=find(node*2+1,mid+1,R,l,r);
    if(x==y and y==-1)return -1;
    else if(x==-1)return y;
    else if(y==-1)return x;
    else return Secret(x,y);
}
void Init(int N, int A[]) {
    n=N;
    a.clear();
    a.pb(0);
    for(int i=0;i<N;i++)a.push_back(A[i]);
    build(1,1,n);
}

int Query(int L, int R) {
    L++,R++;
    return find(1,1,n,L,R);
}
#Verdict Execution timeMemoryGrader output
Fetching results...