Submission #1327343

#TimeUsernameProblemLanguageResultExecution timeMemory
1327343gdshirpelengTrampoline (info1cup20_trampoline)C++20
0 / 100
2113 ms504488 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
#define in insert
#define pb push_back
ll xstart,xend,ystart,yend;
bool ans=0;
ll R,C,N;
void solve(){
    cin>>R>>C>>N;
    vector<vector<bool>>graph(R+1,vector<bool>(C+1,0));
    vector<vector<bool>>used(R+1,vector<bool>(C+1,0));
    ll u,v;
    for(int i=0;i<N;i++){
        cin>>u>>v;
        graph[u][v]=1;
    }
    ll q;
    cin>>q;
    while(q--){
        cin>>xstart>>ystart>>xend>>yend;
        ans=0;
        queue<pair<ll,ll>>q;
        q.push({xstart,ystart});
        pair<ll,ll>p,p1;
        while(!q.empty()){
            p=q.front();
            q.pop();
            used[p.first][p.second]=1;
            if(p.first==xend && p.second==yend){
                ans=1;
                break;
            }
            if(graph[p.first][p.second]){
                p1.first=p.first+1;
                p1.second=p.second;
                if(p1.first<=R && p1.second<=C && !used[p1.first][p1.second]){
                    q.push(p1);
                }
            }
            p1.first=p.first;
            p1.second=p.second+1;
            if(p1.first<=R && p1.second<=C && !used[p1.first][p1.second]){
                q.push(p1);
            }
        }
        if(ans){
            cout<<"YES\n";
        }
        else{
            cout<<"NO\n";
        }
    }
}

int main(){
    solve();
    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...