#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 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... |