BFS08
Cho một bảng hình chữ nhật được biểu diễn bằng một ma trận kích thước \(N ×M\), trong đó:
Ô có giá trị \(0\) là ô trống, có thể di chuyển qua.
Ô có giá trị \(1\) là ô tường, không thể di chuyển qua.
Người chơi bắt đầu tại ô \((x,y)\) và cần di chuyển đến ô \((u,v)\) bằng cách di chuyển theo 4 hướng: trên, dưới, trái, phải.
Yêu cầu: Bạn cần tìm đường đi ngắn nhất ô \((x,y)\) và cần di chuyển đến ô \((u,v)\), nếu có. Nếu không có đường đi, trả về -1.
Input
Dòng đầu tiên chứa hai số nguyên \(N , M (1 ≤ N,M ≤ 1000) \)
Dòng thứ hai chứa hai số nguyên \(x,y (0≤x<N;0≤y<M).\)
Dòng thứ ba chứa hai số nguyên \(u,v (0≤u<N;0≤v<M).\)
Tiếp theo là \(N\) dòng, mỗi dòng chứa \(M\) số nguyên 0 hoặc 1, biểu diễn mê cung.
Output
- Ghi độ dài của đường đi ngắn nhất từ điểm bắt đầu đến điểm kết thúc. Nếu không có đường đi, trả về -1.
Sample Input
5 5
0 0
4 4
0 1 0 0 0
0 1 1 1 0
0 0 0 1 0
1 1 0 0 0
0 0 0 1 0
Sample Output
8
Sample Input
7 7
0 0
6 6
0 0 0 0 0 0 0
1 1 1 1 1 1 0
1 1 1 1 1 1 0
1 1 1 1 1 1 0
1 1 1 1 1 1 0
1 1 1 1 1 1 0
0 0 0 0 0 0 0
Sample Output
7
Comments
*Hint: Bài này sài index 0