Mê cung
Xem dạng PDF
Gửi bài giải
Điểm:
800,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Nguồn bài:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch
Cho một mê cung được biểu diễn dưới dạng lưới kích thước ~N \times M~ (gồm ~N~ hàng và ~M~ cột). Các hàng được đánh số từ ~1~ đến ~N~ (từ trên xuống dưới), các cột được đánh số từ ~1~ đến ~M~ (từ trái qua phải).
Tại mỗi ô, ký tự . thể hiện đường có thể đi qua, và ký tự # thể hiện bức tường không thể đi xuyên qua. Từ một ô, bạn chỉ có thể di chuyển sang 4 ô kề cạnh (trên, dưới, trái, phải).
Hãy tìm số bước di chuyển ít nhất để đi từ ô xuất phát ~(x_1, y_1)~ đến ô đích ~(x_2, y_2)~.
Dữ liệu
- Dòng đầu tiên chứa hai số nguyên dương ~N, M~ (~1 \le N, M \le 1000~).
- Dòng thứ hai chứa 4 số nguyên ~x_1, y_1, x_2, y_2~ cho biết tọa độ hàng và cột của ô xuất phát và ô đích.
- ~N~ dòng tiếp theo, mỗi dòng chứa ~M~ ký tự (chỉ gồm
.hoặc#) mô tả mê cung. (Dữ liệu đảm bảo ô xuất phát và ô đích luôn luôn là đường đi.).
Kết quả
In ra một số nguyên duy nhất là số bước di chuyển tối thiểu. Nếu không có đường đi tới đích, in ra -1.
Ví dụ
Input
3 3
1 1 3 3
.#.
..#
...
Output
4
Bình luận