제출 #1344685

#제출 시각아이디문제언어결과실행 시간메모리
1344685kuzma_aCurtains (NOI23_curtains)C++20
0 / 100
2 ms4168 KiB
#pragma GCC optimize("Ofast")
#pragma GCC optimize("O3,unroll-loops")
#include <bits/stdc++.h>
//#define int long long

using namespace std;

constexpr int sq = 1;
vector<vector<int>>mn(sq,vector<int>(500000,500000));

int32_t main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int n,m,q;
    cin>>n>>m>>q;
    set<int>rt[n],lft[n];
    for(int i = 0;i<m;i++){
        int l,r;
        cin>>l>>r;
        l--;
        r--;
        rt[l].insert(r);
        lft[r].insert(l);
    }
    //for(int i = 0;i<sq;i++){
    int i = 0;
        for(int j = 0;j<n;j++){
            mn[i][j] = j+1;
            while(lft[j].size() && *lft[j].begin() < i*sq){
                lft[j].erase(lft[j].begin());
            }
            if(lft[j].size()){
                int ps = j;
                while(ps >= *lft[j].begin()){
                    ps = min(ps,mn[i][ps]);
                    if(ps > *lft[j].begin()){
                        ps--;
                    }
                    else{
                      break;
                    }
                }
                mn[i][j] = ps;
            }
        }
    //}
    /*
    for(int i = 0;i<n;i++){
        cout<<mn[0][i]<<' ';
    }
    */
    while(q--){
        int l,r;
        cin>>l>>r;
        l--;
        r--;
        if(mn[0][r] == 0){
            cout<<"YES";
        }
        else{
            cout<<"NO";
        }
        cout<<endl;
    }
}
#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...