Submission #691265

#TimeUsernameProblemLanguageResultExecution timeMemory
691265amunduzbaevRailway Trip (JOI17_railway_trip)C++17
0 / 100
2082 ms10380 KiB
#include "bits/stdc++.h" using namespace std; #define ar array typedef long long ll; //~ #define int ll const int N = 2e5 + 5; vector<int> edges[N]; int a[N]; signed main(){ ios::sync_with_stdio(0); cin.tie(0); int n, k, q; cin >> n >> k >> q; vector<int> ss; for(int i=0;i<n;i++){ cin >> a[i]; while(!ss.empty() && a[ss.back()] < a[i]){ edges[ss.back()].push_back(i); edges[i].push_back(ss.back()); ss.pop_back(); } if(!ss.empty()){ edges[ss.back()].push_back(i); edges[i].push_back(ss.back()); } ss.push_back(i); } ss.clear(); int d[n]; while(q--){ int a, b; cin >> a >> b; a--, b--; memset(d, 63, sizeof d); queue<int> q; q.push(a); d[a] = 0; while(!q.empty()){ int u = q.front(); q.pop(); for(auto x : edges[u]){ if(d[x] > d[u] + 1){ d[x] = d[u] + 1; q.push(x); } } } cout<<d[b]--<<"\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...