Submission #838296

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
8382962023-08-26 13:19:54siewjhRainforest Jumps (APIO21_jumps)C++17
100 / 100
1002 ms51376 KiB
#include "jumps.h"
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 200005;
int nums, height[MAXN], lf[MAXN][20], rt[MAXN][20], hi[MAXN][20];
int query(int l, int r, int targ){
int ans = r;
if (height[ans] > targ) return -1;
for (int k = 19; k >= 0; k--)
if (lf[ans][k] >= l && height[lf[ans][k]] < targ)
ans = lf[ans][k];
return ans;
}
void init(int N, vector<int> H) {
nums = N;
for (int i = 1; i <= nums; i++) height[i] = H[i - 1];
height[0] = height[nums + 1] = nums + 1;
stack<pair<int, int>> s;
s.push({nums + 1, 0});
for (int i = 1; i <= nums; i++){
while (height[i] > s.top().first) s.pop();
lf[i][0] = s.top().second;
s.push({height[i], i});
}
while (s.size()) s.pop();
s.push({nums + 1, nums + 1});
for (int i = nums; i >= 1; i--){
while (height[i] > s.top().first) s.pop();
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
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...