제출 #1162291

#제출 시각아이디문제언어결과실행 시간메모리
1162291dubabubaGift Exchange (JOI24_ho_t4)C++20
8 / 100
260 ms2336 KiB
#include <bits/stdc++.h>
using namespace std;

const int mxn = 1e6 + 10;
int n, a[mxn], b[mxn];
int st[mxn];

bool solve(int l, int r) {
	// cout << "solve: " << l << ' ' << r << endl;
	if(l == r) return 0;
	if(st[r] <= l) return 1;
	if(st[r] == r) return 0;
	return solve(l, st[r] - 1);
}

int main() {
	cin >> n;
	a[n + 1] = n + 1;
	for(int i = 1; i <= n; i++) {
		cin >> a[i];
		assert(a[i - 1] < a[i]);
	}
	for(int i = 1; i <= n; i++) {
		cin >> b[i];
		st[i] = lower_bound(a, a + n + 1, b[i]) - a;
		assert(st[i]);
		assert(st[i] <= i);
	}

	for(int i = 1; i <= n; i++)
		st[i] = st[st[i]];

	int q;
	cin >> q;
	while(q--) {
		int l, r;
		cin >> l >> r;
		if(solve(l, r)) cout << "Yes\n";
		else cout << "No\n";
	}
	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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...