Submission #1291421

#TimeUsernameProblemLanguageResultExecution timeMemory
12914211otaCurtains (NOI23_curtains)C++20
0 / 100
1 ms584 KiB
#include <bits/stdc++.h>
using namespace std;

#define endl "\n"
// #define int long long
#define pii pair<int, int>
#define ff first
#define ss second
#define entire(x) (x).begin(), (x).end()

const int inf = 1e9;

int32_t main(){
    ios::sync_with_stdio(false); cin.tie(nullptr);

    int n, m, q; cin >> n >> m >> q;
    vector<pii> curt(m); // [l, r]

    for (auto& [l, r] : curt) cin >> l >> r, l--, r--;

    sort(entire(curt));

    vector<bool> ok(n, false);
    for (int i = 0; i < n; i++){
        
    }

    auto isgood = [&](int s, int e){
        int low = 0, high = m-1;
        while (low < high){
            int mid = (low + high + 1) / 2;
            if (curt[mid].ff < s) low = mid;
            else if (curt[mid].ff == s and curt[mid].ss <= e) low = mid;
            else high = mid-1;
        }
        if (curt[low].ff != s) return false;

        int last = s;
        for (int i = low; i < m; i++){
            if (curt[i].ff - last > 1) break;
            if (curt[i].ss <= e) last = max(last, curt[i].ss);
        }
        return (last == e);
    };

    while (q--){
        int s, e; cin >> s >> e; s--, e--;
        if (isgood(s, e)) cout << "YES" << endl;
        else cout << "NO" << endl;
    }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...