#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |