Phá tường thoát ra
Đề bài
Mô tả
Một robot bị kẹt trong một bản đồ hàng, cột. Ô # là tường, ô . là ô trống, robot đứng ở ô S (ô trống). Mỗi bước robot đi sang một ô chung cạnh (lên, xuống, trái, phải). Robot có thể đi vào ô tường, nhưng trước đó phải phá bức tường ấy; tường đã phá thì trở thành ô trống.
Robot thoát được khi nó đứng ở một ô thuộc mép bản đồ (hàng đầu, hàng cuối, cột đầu hoặc cột cuối), vì từ đó chỉ cần bước thêm một bước là ra ngoài.
Hãy tính số bức tường ít nhất robot phải phá để thoát ra.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên .
- dòng tiếp theo, mỗi dòng là một xâu độ dài gồm các ký tự
.,#,S. Có đúng một ký tựS.
Dữ liệu ra
In một số nguyên: số bức tường ít nhất cần phá.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 7 7 ####### #.....# #.###.# #.#S#.# #.#.#.# #...#.. #####.# |
0 | Đi xuống, sang trái, lên trên, sang phải rồi xuống theo hành lang để đến ô trống ở mép phải hoặc mép dưới, không cần phá tường. |
| 5 5 ##### ##.## #.S.# ##.## ##### |
1 | Mọi ô ở mép đều là tường, nên phải phá ít nhất một bức, ví dụ đi lên một ô rồi phá ô tường phía trên. |
Bình luận