Thử thách trên đảo
Đề bài
Mô tả
Trong một trò chơi điện tử, nhân vật của bạn phải vượt qua một thử thách trên một hòn đảo: ghé thăm tất cả các ngôi đền trên đảo.
Hòn đảo được mô tả bởi một bảng hình chữ nhật . Mỗi ô của bảng là núi, đền hoặc đất trống. Đền được ký hiệu bởi ký tự S, núi bởi ký tự #, đất trống bởi ký tự .. Núi rất cao và nguy hiểm nên nhân vật không thể đi vào các ô núi, chỉ có thể đi vào ô đền hoặc ô đất trống.
Ban đầu nhân vật đứng ở ô , ô này chắc chắn là đất trống. Khi đang ở ô , nhân vật chỉ có thể di chuyển sang một trong các ô , , , và không được rời khỏi đảo. Mỗi bước di chuyển mất đơn vị thời gian. Đi qua một ô đền nghĩa là đã ghé thăm ngôi đền đó.
Để chiến thắng, nhân vật phải ghé thăm cả ngôi đền trong thời gian ít nhất. Cho bản đồ hòn đảo, hãy tìm thời gian ít nhất đó.
Dữ liệu vào
- Dòng đầu tiên chứa ba số nguyên dương , , (, ).
- dòng tiếp theo, mỗi dòng gồm ký tự thuộc
.,#,S, lần lượt là đất trống, núi và đền. Bản đồ có đúng ký tựS, và ô chắc chắn là đất trống.
Dữ liệu ra
In ra một số nguyên là thời gian ít nhất để ghé thăm cả ngôi đền. Nếu không có cách nào, in ra .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 6 3 .S..#. ..#.#. S.#S.. |
9 | Đường đi gồm bước. |
| 3 3 2 .#. #S. ..S |
-1 | Ô xuất phát bị núi chặn, không thể đến ngôi đền nào. |
Bình luận