Submission #844798

# Submission time Handle Problem Language Result Execution time Memory
844798 2023-09-06T00:57:14 Z Quadrilateral Passport (JOI23_passport) C++14
0 / 100
0 ms 356 KB
#include <iostream>
#include <fstream>
#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, destinL = passport[queries[1]].L, destinR = passport[queries[1]].R, minL = destinL, maxR = destinR;
	int minIdx = -1, maxIdx = -1;
	bool flag = 0;
	while (destinL != 1 || destinR != N) {
		for (int i = destinL; i <= destinR; i++) {
			if (minL < passport[i].L) {
				minL = passport[i].L;
				minIdx = i;
			}
			if (maxR > passport[i].R) {
				maxR = passport[i].R;
				maxIdx = i;
			}
		}
		if (minL == destinL && maxR == destinR) {
			flag = 1;
			break;
		}
		if (passport[minIdx].R == maxR || passport[maxIdx].L == minL)
			tmp++;
		else tmp += 2;
		destinL = minL;
		destinR = maxR;
	}
	ans[queries[1]] = tmp;
	if (flag) ans[queries[1]] = -1;
}

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

int main() {
	fastIO();
	input();
	solve();
	output();
	return 0;
}
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 356 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 356 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 356 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -