제출 #980665

#제출 시각아이디문제언어결과실행 시간메모리
980665vjudge1밀림 점프 (APIO21_jumps)C++17
33 / 100
4086 ms13980 KiB
#include "jumps.h" #include<bits/stdc++.h> #define sz size() #define ll int using namespace std; const ll INF = 1e9; int n; vector<vector<ll>> v; void init(int N, vector<int> h) { n = N; v.resize(n); vector<ll> q; for(ll i = 0; i < n; ++i) { while(q.sz && h[q.back()] < h[i]) v[q.back()].push_back(i), q.pop_back(); q.push_back(i); } q.clear(); for(ll i = n - 1; i >= 0; --i) { while(q.sz && h[q.back()] < h[i]) v[q.back()].push_back(i), q.pop_back(); q.push_back(i); } } int minimum_jumps(int a, int b, int c, int d) { vector<ll> dist(n, INF); queue<ll> q; for(ll i = a; i <= b; ++i) { dist[i] = 0; q.push(i); } while(q.sz) { ll s = q.front(); q.pop(); for(ll t : v[s]) { if(dist[t] < INF) continue; dist[t] = dist[s] + 1; q.push(t); } } ll ans = INF; for(ll i = c; i <= d; ++i) ans = min(ans, dist[i]); return ans < INF ? ans : -1; } //signed main() //{ // ios_base::sync_with_stdio(0); // cin.tie(0), cout.tie(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...