Submission #947823

#TimeUsernameProblemLanguageResultExecution timeMemory
947823NeroZeinFurniture (JOI20_furniture)C++17
5 / 100
5032 ms4948 KiB
#include "bits/stdc++.h" using namespace std; #ifdef Nero #include "Deb.h" #else #define debug(...) #endif const int N = 1003; int vis[N][N]; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; vector<vector<int>> c(n, vector<int> (m)); for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { cin >> c[i][j]; } } vector<int> dx = {0, 1}, dy = {1, 0}; function<int(int, int)> dfs = [&](int x, int y) { if (x == n - 1 && y == m - 1) { return 1; } int& ret = vis[x][y]; if (ret != -1) { return ret; } ret = 0; for (int z = 0; z < 2; ++z) { int nx = x + dx[z], ny = y + dy[z]; if (nx < 0 || nx >= n || ny < 0 || ny >= m || c[nx][ny]) continue; ret |= dfs(nx, ny); } return ret; }; auto check = [&](int x, int y) { c[x][y] = 1; memset(vis, -1, sizeof vis); if (dfs(0, 0)) { return true; } c[x][y] = 0; return false; }; int q; cin >> q; while (q--) { int x, y; cin >> x >> y; --x, --y; cout << check(x, y) << '\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...