// UUID: b79c90c1-d909-44cf-b314-a664eeb4d24b
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 500'001;
int a[MAXN], b[MAXN];
void solve() {
int n; 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;
multiset<pair<int, int>> v;
for (int i = l; i <= r; i++) v.insert({a[i], b[i]});
bool ok = true;
while (!v.empty() && ok) {
if (v.size() == 1) {
ok = false;
break;
}
auto [x, y] = *v.rbegin();
int curr = y;
int len = 0;
while (1) {
auto it = v.lower_bound({curr, 0});
if (it == v.end()) {
ok = false;
break;
}
auto [nx, ny] = *it;
if (nx == x && ny == y) break;
len++;
v.erase(it);
curr = ny;
}
if (len == 0) {
ok = false;
}
v.erase(prev(v.end()));
}
cout << (ok?"Yes\n":"No\n");
}
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
int t = 1;
// cin >> t;
while (t--) solve();
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... |