Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int n, m;
- int ans[1000][1000];
- char arr[1000][1000];
- void dfs(int posX, int posY, int prev)
- {
- if(posX >= n || posY >= m || posX < 0 || posY < 0)
- return;
- if(arr[posX][posY] == '#')
- return;
- if(ans[posX][posY] < prev + 1)
- return;
- ans[posX][posY] = prev + 1;
- dfs(posX + 1, posY, prev + 1);
- dfs(posX - 1, posY, prev + 1);
- dfs(posX, posY + 1, prev + 1);
- dfs(posX, posY - 1, prev + 1);
- }
- int main()
- {
- cin >> n >> m;
- for(int i = 0; i < n; i++)
- for(int j = 0; j < m; j++)
- {
- cin >> arr[i][j];
- ans[i][j] = INT_MAX;
- }
- int aX, aY, bX, bY;
- cin >> aX >> aY >> bX >> bY;
- dfs(aX, aY, 0);
- ans[bX][bY] == INT_MAX ? cout << 0 : cout << ans[bX][bY];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement