제출 #1228731

#제출 시각아이디문제언어결과실행 시간메모리
1228731PenguinsAreCuteRailway Trip (JOI17_railway_trip)C++17
20 / 100
2096 ms7436 KiB
#include <bits/stdc++.h>
using namespace std;
int main() {
	int n, k, q;
	cin >> n >> k >> q;
	int l[n];
	vector<int> adj[n];
	stack<int> s;
	for(int i=0;i<n;i++) {
		cin >> l[i];
		while(s.size() && l[s.top()] < l[i]) {
			adj[s.top()].push_back(i);
			adj[i].push_back(s.top());
			s.pop();
		}
		if(s.size()) {
			adj[s.top()].push_back(i);
			adj[i].push_back(s.top());
		}
		if(s.size() && l[s.top()] == l[i])
			s.pop();
		s.push(i);
	}
	while(q--) {
		int a, b;
		cin >> a >> b;
		a--; b--;
		queue<int> q;
		q.push(a);
		int dist[n];
		memset(dist,-1,sizeof(dist));
		dist[a] = 0;
		while(q.size()) {
			int x = q.front();
			q.pop();
			for(auto y: adj[x])
				if(dist[y] == -1) {
					dist[y] = dist[x] + 1;
					q.push(y);
				}
		}
		cout << dist[b] - 1 << "\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...