# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
478306 | couplefire | Rainforest Jumps (APIO21_jumps) | C++17 | 1541 ms | 52900 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 N = 200005;
int n, h[N], r_nxt[N], l_nxt[N], nxt[N], r_up[N][20], l_up[N][20], up[N][20];
void init(int N, vector<int> H){
n = N;
for(int i = 1; i<=n; ++i)
h[i] = H[i-1];
h[0] = h[n+1] = n+1;
stack<int> st; st.push(0);
for(int i = 1; i<=n; ++i){
while(h[st.top()]<h[i]) st.pop();
l_nxt[i] = st.top(); st.push(i);
} l_nxt[0] = 0;
while(st.size()) st.pop();
st.push(n+1);
for(int i = n; i>=1; --i){
while(h[st.top()]<h[i]) st.pop();
r_nxt[i] = st.top(); st.push(i);
} r_nxt[n+1] = n+1;
for(int i = 1; i<=n+1; ++i)
if(!l_nxt[i]) nxt[i] = r_nxt[i];
else if(r_nxt[i]==n+1) nxt[i] = l_nxt[i];
else if(h[r_nxt[i]]>h[l_nxt[i]]) nxt[i] = r_nxt[i];
else nxt[i] = l_nxt[i];
for(int i = 0; i<=n; ++i){
l_up[i][0] = l_nxt[i];
# | 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... |