/*
Mayoeba Yabureru
*/
#pragma GCC optimize("O3,unroll-loops")
#include <bits/stdc++.h>
using namespace std;
void solve() {
int n;
cin >> n;
vector a(n, 0), b = a, left(n, -1), right(n, n);
for (int i = 0; i < n; i ++) cin >> a[i];
for (int i = 0; i < n; i ++) cin >> b[i];
for (int i = 0; i < n; i ++) {
for (int j = 0; j < n; j ++) {
if (i == j) continue;
if (b[j] < b[i] && a[j] > b[i]) {
if (j < i) left[i] = max(left[i], j);
else right[i] = min(right[i], j);
}
if (b[i] < b[j] && a[i] > b[j]) {
if (j < i) left[i] = max(left[i], j);
else right[i] = min(right[i], j);
}
}
}
int q;
cin >> q;
while (q --) {
int l, r, can = 1;
cin >> l >> r;
l --, r--;
for (int i = l; i <= r; i ++) {
if (left[i] < l && r < right[i]) can = 0;
}
if (can) cout << "Yes" << endl;
else cout << "No" << endl;
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int T = 1;
for (int I = 1; I <= T; I++) {
solve();
}
}
# | 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... |