제출 #1193937

#제출 시각아이디문제언어결과실행 시간메모리
1193937ezzzay밀림 점프 (APIO21_jumps)C++20
33 / 100
4091 ms19148 KiB
#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 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...