Mê cung 2D
Đề bài
Mô tả
Một mê cung có dạng hình chữ nhật kích thước , chia thành các ô vuông đơn vị. Mỗi ô hoặc là ô trống, hoặc là ô có vật cản.
Trong một đơn vị thời gian, một người có thể di chuyển từ một ô trống sang một ô trống kề cạnh với nó.
Các ô ở hàng thứ nhất được đánh số từ đến theo thứ tự từ trái sang phải, các ô ở hàng thứ hai được đánh số từ đến cũng theo thứ tự từ trái sang phải.
Cho truy vấn, mỗi truy vấn gồm hai ô trống và . Với mỗi truy vấn, hãy tìm thời gian ít nhất để đi từ ô đến ô , hoặc cho biết không thể đi được.
Dữ liệu vào
- Dòng đầu tiên chứa hai số nguyên và : chiều rộng của mê cung và số truy vấn.
- Hai dòng tiếp theo mô tả mê cung, mỗi dòng gồm ký tự, mỗi ký tự là
.(ô trống) hoặcX(vật cản). - dòng tiếp theo, dòng thứ chứa hai số nguyên và mô tả truy vấn thứ . Đảm bảo cả hai ô này đều là ô trống.
Dữ liệu ra
In ra dòng. Dòng thứ chứa độ dài đường đi ngắn nhất từ ô đến ô , hoặc nếu không thể đi từ ô này tới ô kia.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 10 3 X...X..X.. ..X...X..X 11 7 7 18 18 10 |
9 -1 3 |
Ô 11 là ô (hàng 2, cột 1), ô 7 là ô (hàng 1, cột 7). Đường đi ngắn nhất phải đổi hàng ba lần (tại các cột 2, 4, 6) nên tốn bước. Với truy vấn thứ hai, cột 7 chỉ trống ở hàng 2 còn cột 8 chỉ trống ở hàng 1, hai cột này nằm kề nhau nên không thể chuyển hàng, đáp án là . |
| 4 7 .X.. ...X 5 1 1 3 7 7 1 4 6 1 4 7 5 7 |
1 4 0 5 2 2 2 |
Ô 1 và ô 5 nằm cùng cột 1 và đều trống nên cách nhau bước. Đi từ ô 1 đến ô 3 phải vòng xuống hàng 2 vì ô (hàng 1, cột 2) có vật cản: , tốn bước. Truy vấn thứ ba có hai ô trùng nhau nên đáp án là . |
Bình luận