# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
551952 | marsxiang5902 | Rainforest Jumps (APIO21_jumps) | C++17 | 1263 ms | 54240 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
const int MN = 2e5+5, ML = 18;
int N, sptb[ML][MN], *ar = sptb[0], ainv[MN], nxL[MN], bl[ML][MN], blR[ML][MN], *nxR = blR[0];
int queMx(int l, int r){
assert(l <= r);
int d = __lg(r-l+1);
return max(sptb[d][l], sptb[d][r-(1<<d)+1]);
}
void init(int _N, vector<int> _ar){
N = _N; memcpy(ar+1, &_ar[0], N * sizeof ar[0]);
set<int> st = {0, N+1};
ar[0] = N+1; ar[N+1] = N+2;
for(int i = 0; i <= N+1; i++)
ainv[--ar[i]] = i;
for(int val = N+1; val--; ){
int pos = ainv[val];
auto it = st.insert(pos).first;
int l = *prev(it), r = *next(it);
nxL[pos] = l;
nxR[pos] = r;
bl[0][pos] = ainv[max(ar[l], ar[r])];
}
nxL[0] = 0; nxR[0] = nxL[N+1] = nxR[N+1] = bl[0][0] = bl[0][N+1] = N+1;
for(int l = 1; l < ML; l++)
for(int i = 0; i <= N+1; i++){
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |