제출 #1324664

#제출 시각아이디문제언어결과실행 시간메모리
1324664brendonw밀림 점프 (APIO21_jumps)C++20
0 / 100
1 ms1080 KiB
#include <bits/stdc++.h>

using namespace std;
const int MAXN = 2e5;
int h[MAXN], mxprev[MAXN];
int n;
void init(int N, vector<int> H) {
	n = N;
	memset(mxprev, -1, sizeof mxprev);
	copy(H.begin(), H.end(), h);
	set<int> cur;
	int l = 0;
	for (int r = 0; r < n; ++r) {
		while (!cur.empty() && *cur.rbegin() > h[r]) {
			cur.erase(h[l++]);
		}
		cur.insert(h[r]);
		mxprev[r] = l;
	}
}

int minimum_jumps(int A, int B, int C, int D) {
	for (int i = B; i >= A; --i) {
		for (int j = C; j <= D; ++j) {
			if (mxprev[j] <= i) {
				int cnt = 0;
				int curmx = 0;
				for (int k = i; k <= j; ++k) {
					if (curmx < h[k]) {
						h[k] = curmx;
						cnt++;
					}
				}
				return cnt;
			}
		}
	}
	return -1;
}
#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...