Submission #1279477

#TimeUsernameProblemLanguageResultExecution timeMemory
1279477hssaan_arifCurtains (NOI23_curtains)C++20
0 / 100
1 ms576 KiB
// #include <me>
#include <bits/stdc++.h>
using namespace std;

#define endl "\n"
#define pb push_back
#define int long long
#define fi first
#define se second

const int N = 3e5 + 5, M = 1e9 + 7, LG = 20;

int n , m , q , l , r;

void solve(){
    cin >> n >> m >> q;
    bool dp[n+1][n+1] = {};
    vector<pair<int,int>> s;
    for (int i = 1 ; i <= m ; i++){
        cin >> l >> r;
        dp[l][r] = 1;
        s.pb({r , l});
    }
    sort(s.begin() , s.end());
    l = 0;
    for (int j = 1 ; j <= n ; j++){
        for (int i = 1 ; i <= j ; i++){
            // cout << i << ' ' << j << ' ' << l << endl;
            if (l < s.size() && i <= s[l].se && s[l].fi == j){
                for (int k = s[l].se - 1 ; k <= j ; k++){
                    dp[i][j] |= dp[i][k];
                }
            }
            if (l < s.size() && s[l].se == i && s[l].fi == j){
                l++;
            }
        }
    }
    while(q--){
        cin >> l >> r;
        // cout << dp[l][r] << endl;
        if (dp[l][r]){
            cout << "YES" << endl;
        }else{
            cout << "NO" << endl;
        }
    }
}

signed main(){
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int ts = 1;
    // cin >> ts;
    while(ts--){
        solve();
    }
}
#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...