Submission #1193916

#TimeUsernameProblemLanguageResultExecution timeMemory
1193916ezzzayRainforest Jumps (APIO21_jumps)C++20
21 / 100
225 ms64520 KiB
#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
vector<int>v[4000];
int dst[4000][4000];
void init(int N, std::vector<int> H){
	for(int i=0;i<N;i++){
		for(int j=0;j<N;j++){
			if(i==j)continue;
			dst[i][j]=1e5;
		}
	}
	for(int i=0;i<N;i++){
		for(int j=i+1;j<N;j++){
			if(H[j]>=H[i]){
				v[i].pb(j);
				break;
			}
		}
	}
	for(int i=0;i<N;i++){
		for(int j=i-1;j>=0;j--){
			if(H[j]>=H[i]){
				v[i].pb(j);
				break;
			}
		}
	}
	for(int i=0;i<N;i++){
		queue<int>q;
		q.push(i);
		while(!q.empty()){
			int a=q.front();
			q.pop();
			for(auto b:v[a]){
				if(dst[i][b]==1e5){
					dst[i][b]=dst[i][a]+1;
					q.push(b);
				}
			}
		}
	}
	
}
int minimum_jumps(int A, int B, int C, int D) {
	int ans= 1e5;
	for(int i=A;i<=B;i++){
		for(int j=C;j<=D;j++){
			ans=min(ans,dst[i][j]);
		}
	}
	if(ans==1e5)ans=-1;
	return ans;
}
#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...