제출 #1199057

#제출 시각아이디문제언어결과실행 시간메모리
1199057origabai밀림 점프 (APIO21_jumps)C++20
33 / 100
4099 ms14500 KiB
#include "jumps.h" #include <bits/stdc++.h> using namespace std; int N; vector<int> H; vector<vector<int>> out; void init(int N2, std::vector<int> H2){ N=N2; H=H2; stack<int> s; out.resize(N); for (int i=0;i<N;i++){ while (s.size() && H[s.top()] < H[i]){ out[s.top()].push_back(i); s.pop(); } s.push(i); } while (s.size()) s.pop(); for (int i=N-1;i>=0;i--){ while (s.size() && H[s.top()] < H[i]){ out[s.top()].push_back(i); s.pop(); } s.push(i); } } int minimum_jumps(int A, int B, int C, int D) { vector<int> dist(N,1e9); queue<int> q; for (int i=A;i<=B;i++){ q.push(i); dist[i] = 0; } while (q.size()){ int v = q.front(); q.pop(); for (int u : out[v]){ if (dist[u] == 1e9){ dist[u] = dist[v] + 1; q.push(u); } } } int ans = 1e9; for (int i=C;i<=D;i++){ ans = min(ans, dist[i]); } if (ans == 1e9) 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...