제출 #1162288

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

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

int main() {
	cin >> n;
	for(int i = 1; i <= n; i++)
		cin >> a[i];
	for(int i = 1; i <= n; i++)
		cin >> b[i];

	int q;
	cin >> q;
	while(q--) {
		int l, r;
		cin >> l >> r;

		vector<int> ind;
		for(int i = l; i <= r; i++) {
			ind.push_back(i);
		}

		sort(ind.begin(), ind.end(), [&](int i, int j) { return a[i] < a[j]; });
		for(int i = 1; i <= 2 * n; i++)
			sus[i] = false;

		// cout << l << ' ' << r << ": ";
		// for(int i : ind)
			// cout << i << ' ';
		// cout << endl;

		sus[a[ind[0]]] = true;
		// cout << a[ind[0]] << endl;
		for(int _ = 1; _ < ind.size(); _++) {
			int l = b[ind[_]];
			int r = a[ind[_]];
			// cout << ind[_] << " = " << l << ' ' << r << endl;

			for(int i = l; i <= r; i++)
				if(sus[i]) {
					// cout << "buba = " << i << endl;
					sus[r] = true;
				}
		}

		if(sus[a[ind.back()]]) cout << "Yes\n";
		else cout << "No\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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...