#include "secret.h"
#include <bits/stdc++.h>
using namespace std;
#define intt int
#define pb push_back
const intt mxN = 2e3 + 31;
vector<intt> seg(4 * mxN);
intt a[mxN], border;
// secret_count, MAX_VALUE = 1000000000;
void build(intt node, intt l, intt r) {
if(l == r) {
seg[node] = a[l];
return;
}
intt mid = (l + r) / 2;
build(node * 2, l, mid);
build(node * 2 + 1, mid + 1, r);
seg[node] = Secret(seg[node * 2], seg[node * 2 + 1]);
}
intt ret = 0;
intt get(intt node, intt l, intt r, intt ql, intt qr) {
if(ql > r || qr < l || ql > qr) return -1;
if(ql <= l && r <= qr) {
return seg[node];
}
intt mid = (l + r) / 2;
intt sol = get(node * 2, l, mid, ql, qr);
intt sag = get(node * 2 + 1, mid + 1, r, ql, qr);
if(sol == -1) return sag;
if(sag == -1) return sol;
return Secret(sol, sag);
}
void Init(int N, int A[]) {
for(intt i = 0; i < N; i++) {
a[i] = A[i];
}
build(1, 0, N - 1);
border = N - 1;
}
int Query(int L, int R) {
return get(1, 0, border, L, R);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |