#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
vector<int>v[400000];
void init(int N, std::vector<int> H){
vector<pair<int,int>>vc;
for(int i=0;i<N;i++){
while(!vc.empty()){
if(vc.back().ff<H[i])vc.pop_back();
else{
v[i].pb(vc.back().ss);
break;
}
}
vc.pb({H[i],i});
}
vc.clear();
for(int i=N-1;i>=0;i--){
while(!vc.empty()){
if(vc.back().ff<H[i])vc.pop_back();
else{
v[i].pb(vc.back().ss);
break;
}
}
vc.pb({H[i],i});
}
}
int minimum_jumps(int A, int B, int C, int D) {
queue<int>q;
vector<int>dst(3e5);
for(int i=0;i<3e5;i++)dst[i]=1e6;
for(int i=A;i<=B;i++){
dst[i]=0;
q.push(i);
}
while(!q.empty()){
int a=q.front();
q.pop();
for(auto b:v[a]){
if(dst[b]==1e6){
dst[b]=dst[a]+1;
q.push(b);
}
}
}
int ans=1e6;
for(int i=C;i<=D;i++){
ans=min(ans,dst[i]);
}
if(ans==1e6)ans=-1;
return ans;
}
//#include "jumps.h"
//
//#include <vector>
//
//void init(int N, std::vector<int> H) {
//
//}
//
//int minimum_jumps(int A, int B, int C, int D) {
// return 0;
//}
# | 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... |