Submission #569942

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
5699422022-05-28 10:01:26toastifishiRainforest Jumps (APIO21_jumps)C++14
100 / 100
1084 ms50592 KiB
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2e5 + 5;
const int MAXLG = 20;
int n, heights[MAXN];
int L[MAXN][MAXLG], R[MAXN][MAXLG], high[MAXN][MAXLG];
void init(int N, vector<int> H) {
n = N;
heights[0] = heights[n + 1] = 1e9;
for(int i = 0; i < n; i++) heights[i + 1] = H[i];
vector <int> ii; ii.push_back(0);
for(int i = 1; i <= n; i++) {
while(heights[ii.back()] < heights[i]) ii.pop_back();
L[i][0] = ii.back();
ii.push_back(i);
}
ii.clear(); ii.push_back(n + 1);
for(int i = n; i >= 1; i--) {
while(heights[ii.back()] < heights[i]) ii.pop_back();
R[i][0] = ii.back();
ii.push_back(i);
high[i][0] = ((heights[L[i][0]] > heights[R[i][0]] ? L[i][0] : R[i][0]));
}
R[n + 1][0] = n + 1;
for(int p = 1; p <= 19; p++) {
R[n + 1][p] = n + 1;
for(int i = 1; i <= n; i++) {
L[i][p] = L[L[i][p - 1]][p - 1];
R[i][p] = R[R[i][p - 1]][p - 1];
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...