#include <bits/stdc++.h>
#define F first
#define S second
using namespace std;
using ll = long long;
using pi = pair<int, int>;
using vi = vector<int>;
template<class T> bool ckmin(T& a, T b) { return b < a ? a = b, true : false; }
template<class T> bool ckmax(T& a, T b) { return a < b ? a = b, true : false; }
int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    
    int n; cin >> n;
    vector<int> a(n + 1), b(n + 1);
    for (int i = 1; i <= n; ++i) cin >> a[i];
    for (int i = 1; i <= n; ++i) cin >> b[i];
    
    vector<int> sol(n + 1);
    
    int q; cin >> q;
    while (q--) {
        int l, r; cin >> l >> r;
        vector<pair<int, int>> v;
        set<pair<int, int>> s;
        for (int i = l; i <= r; ++i) v.push_back({a[i], i});
        for (int i = l; i <= r; ++i) s.insert({b[i], i});
        sort(v.begin(), v.end());
        
        int cnt = 0;
        bool ok = 1;
        int who1 = -1, who2 = -1;
        for (auto [x, i] : v) {
            bool still = 0;
            if (s.count({b[i], i})) still = 1, s.erase({b[i], i});
            auto it = s.lower_bound({x + 1, 0});
            if (it == s.begin()) {
                cnt++;
                if (cnt == 3) {
                    ok = false;
                    break;
                }
                if (who1 != -1) who2 = i;
                if (who1 == -1) who1 = i;
                sol[i] = a[i];
                continue;
            } 
            sol[prev(it)->second] = x;
            s.erase(prev(it));
            if (still == 1) s.insert({b[i], i});
        }
        if (cnt == 2) {
            ok = 0;
            if (sol[who1] >= b[who2] && sol[who2] >= b[who1]) ok = 1;
        }
        if (cnt == 1) {
            ok = 0;
            for (int i = l; i <= r; ++i) {
                if (i != who1 && sol[i] >= b[who1] && sol[who1] >= b[i]) ok = 1;
            }
        }
        cout << (ok ? "Yes" : "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... |