Submission #525147

#TimeUsernameProblemLanguageResultExecution timeMemory
525147dron_rpTrampoline (info1cup20_trampoline)C++14
0 / 100
2087 ms1048580 KiB
#include <bits/stdc++.h>
using namespace std;

int r, c, n;

set<pair<int, int>> green;

bool dfs(int x, int y, int xf, int yf){
    //cout << x << " " << y << "\n";
    if (x == xf && y == yf){
        return true;
    }
    if (x == r && y == c) return false;
    bool canReach = false;
    if (y+1 <= c) canReach |= dfs(x, y+1, xf, yf);
    if (green.find({x, y}) != green.end()){
        if (x+1 <= r) canReach |= dfs(x+1, y, xf, yf);
    } 
    return canReach;
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cin >> r >> c >> n;
    int x, y;
    for (int i = 0; i<n; i++){
        cin >> x >> y;
        green.insert({x, y});
    }
    int t;
    cin >> t;
    while (t--){
        int xStart, yStart, xEnd, yEnd;
        cin >> xStart >> yStart >> xEnd >> yEnd;
        cout << ((dfs(xStart, yStart, xEnd, yEnd)) ? "Yes\n" : "No\n");
    }
}
#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...