제출 #1215251

#제출 시각아이디문제언어결과실행 시간메모리
1215251loom밀림 점프 (APIO21_jumps)C++20
33 / 100
4053 ms15448 KiB
#include "jumps.h" #include<bits/stdc++.h> using namespace std; #define ll long long #define inf 5e18 #define nl '\n' const int N = 2e5; vector<int> g[N]; int n; void add(vector<int> a, int x){ vector<pair<int,int>> v; for(int i=0; i<n; i++){ int ix = x ? n-i-1 : i; while(!v.empty() and v.back().first < a[i]) v.pop_back(); if(!v.empty()) g[ix].push_back(v.back().second); v.push_back({a[i], ix}); } } void init(int _n, vector<int> h){ n = _n; add(h, 0); reverse(h.begin(), h.end()); add(h, 1); } int minimum_jumps(int a, int b, int c, int d) { queue<int> q; vector<int> dist(n, -1); for(int i=a; i<=b; i++) q.push(i), dist[i] = 0; while(!q.empty()){ int v = q.front(); q.pop(); if(c <= v and v <= d) return dist[v]; for(int ch : g[v]){ if(dist[ch] == -1){ dist[ch] = dist[v]+1; q.push(ch); } } } return -1; }
#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...