Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<fstream>
- #include<queue>
- using namespace std;
- ifstream cin("alee.in");
- ofstream cout("alee.out");
- int di[] = { 0,0,1,-1 };
- int dj[] = { 1,-1,0,0 };
- queue<pair<int, int> >Que;
- int matrix[180][180], i, j, m, n, new_i, new_j;
- int startx, starty, stopx, stopy;
- bool OK(int i, int j)
- {
- if (i > 0 && j > 0 && i <= n && j <= n && matrix[i][j] != -1)
- return true;
- return false;
- }
- void Read()
- {
- cin >> n >> m;
- for (i = 1; i <= m; i++)
- {
- int ii, jj;
- cin >> ii >> jj;
- matrix[ii][jj] = -1;
- }
- cin >> startx >> starty;
- cin >> stopx >> stopy;
- }
- void Lee()
- {
- matrix[startx][starty] = 1;
- Que.push(make_pair(startx, starty));
- while (!Que.empty())
- {
- i = Que.front().first;
- j = Que.front().second;
- Que.pop();
- for (int dir = 0; dir < 4; dir++)
- {
- new_i = i + di[dir];
- new_j = j + dj[dir];
- if (OK(new_i, new_j) && matrix[new_i][new_j] < 1)
- {
- matrix[new_i][new_j] = matrix[i][j] + 1;
- Que.push(make_pair(new_i, new_j));
- }
- }
- }
- }
- int main()
- {
- Read();
- Lee();
- cout << matrix[stopx][stopy];
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement