Submission #525153

#TimeUsernameProblemLanguageResultExecution timeMemory
525153dron_rpTrampoline (info1cup20_trampoline)C++14
0 / 100
2094 ms73168 KiB
#include <bits/stdc++.h> using namespace std; int r, c, n; set<pair<int, int>> green; bool bfs(int x, int y, int xf, int yf){ queue<pair<int, int>> q; q.push({x, y}); vector<vector<bool>> visited(10000, vector<bool>(10000, false)); visited[x][y] = true; while (!q.empty()){ pair<int, int> t = q.front(); q.pop(); int i, j; tie(i, j) = t; if (i == xf && j == yf) return true; if (j+1 <= c) q.push({i, j+1}); if (green.count({i, j})){ if (i+1 <= r) q.push({i+1, j}); } } return false; } /* 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, xStart, yStart, xEnd, yEnd; cin >> t; while (t--){ cin >> xStart >> yStart >> xEnd >> yEnd; cout << ((bfs(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...