Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #define MAXN 51
- using namespace std;
- int grid[MAXN][MAXN];
- bitset <MAXN> vis[MAXN];
- int n;
- void dfs(int x, int y) {
- vis[x][y] = 1;
- if(grid[x][y] != 1) {
- if(x - 1 >= 0 && !vis[x-1][y]) dfs(x-1, y);
- if(x + 1 < n && !vis[x+1][y]) dfs(x+1, y);
- if(y - 1 >= 0 && !vis[x][y-1]) dfs(x, y-1);
- if(y + 1 < n && !vis[x][y+1]) dfs(x, y+1);
- }
- }
- int main() {
- int initX, initY, endX, endY;
- cin >> n;
- cin >> initX >> initY;
- cin >> endX >> endY;
- for(int i = 0; i < n; i++) {
- for(int j = 0; j < n; j++) {
- scanf("%d", grid[i][j]);
- }
- }
- dfs(initX, initY);
- dfs(endX, endY);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement