Submission #525348

#TimeUsernameProblemLanguageResultExecution timeMemory
525348ksu2009enTrampoline (info1cup20_trampoline)C++14
23 / 100
2074 ms18372 KiB
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

ll n, m, k, t;

ll d[1007][1007];
char a[1007][1007];

void clear_me(){
    for(int i = 0; i <= n; i++)
        for(int j = 0; j <= m;j ++)
            d[i][j] = 0;
}

int main(){
    cin >> n >> m >> k;

    if(n > 5007 || m > 5007){
        map<ll, set<ll>>mp;
        for(int i = 0; i < k; i++){
            ll o, p;
            cin >> o >> p;

            mp[o].insert(p);
        }

        cin >> t;

        while(t--){
            ll x1, y1, x2, y2;
            cin >> x1 >> y1 >> x2 >> y2;

            if(y2 < y1){
                cout << "No" << endl;
                continue;
            }

            auto u = lower_bound(mp[x1].begin(), mp[x1].end(), y1);

            if(u == mp[x1].end())
                cout << "No" << endl;
            else{
                ll p = *u;

                if(p > y2)
                    cout << "No" << endl;
                else
                    cout << "Yes" << endl;
            }

        }
        return 0;
    }

    for(int i = 0; i <= n; i++)
        for(int j = 0; j <= m; j++)
            a[i][j] = 'B';

    for(int i = 0; i < k; i++){
        ll aa, bb;
        cin >> aa >> bb;

        a[aa][bb] = 'G';
    }

    cin >> t;

    while(t--){
        clear_me();

        ll x1, y1, x2, y2;
        cin >> x1 >> y1 >> x2 >> y2;

        d[x1][y1] = 1;

        for(int i = 1; i <= n; i++){
            for(int j = 1; j <= m; j++){
                if(d[i][j - 1] == 1 || (a[i - 1][j] == 'G' && d[i - 1][j] == 1))
                    d[i][j] = 1;
            }
        }

        if(d[x2][y2] == 1)
            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...