Submission #844556

#TimeUsernameProblemLanguageResultExecution timeMemory
844556QuadrilateralPassport (JOI23_passport)C++14
0 / 100
24 ms5208 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#define MAXN 202020
using namespace std;

int N;

struct pass {
	int L, R;
};

vector<pass> passport;
int Q, ans[MAXN];
int queries[MAXN];

void fastIO() {
	ios_base::sync_with_stdio(0); cin.tie(0);
}

void input() {
	cin >> N;
	passport.resize(N + 1);
	for (int i = 1; i <= N; i++)
		cin >> passport[i].L >> passport[i].R;
	cin >> Q;
	for (int i = 1; i <= Q; i++)
		cin >> queries[i];
}

void init() {
	for (int i = 1; i <= N; i++)
		ans[i] = -1;
}

void solve() {
	init();
	int tmp = 1, destinR = passport[1].R, maxR = passport[1].R;
	for (int i = 2; i < N; i++) {
		if (i == destinR) {
			tmp++;
			if (destinR == maxR) {
				tmp = -1;
				break;
			}
			destinR = maxR;
		}
		maxR = max(maxR, passport[i].R);
	}
	if (destinR != N && maxR != N) tmp = -1;
	else if (destinR != N) tmp++;
	ans[1] = tmp;
}

void output() {
	for (int i = 1; i <= Q; i++)
		cout << ans[queries[i]] << '\n';
}

int main() {
	fastIO();
	input();
	solve();
	output();
	return 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...