Mê cung sinh tồn
Đề bài
Mô tả
Ở một vùng đất chìm trong tĩnh lặng và đá tảng, một chiến binh đơn độc tên Riven tỉnh dậy bên trong một mê cung chết chóc. Anh không nhớ mình đã đến đây bằng cách nào, chỉ biết sứ mệnh của mình: tới được điểm đích trước khi cạn kiệt sức lực.
Mặt đất xung quanh tạo thành một hoa văn kỳ lạ, như một lưới ô được khắc bởi một bàn tay vô hình. Có ô an toàn, có ô bị nguyền rủa. Một dòng chữ khắc trên tường ghi:
-: Ô an toàn+: Bẫy chết người, mỗi lần bước vào sẽ mất HP (điểm sinh lực)S: Điểm xuất phát, nơi Riven đang đứngD: Điểm đích, lối thoát tự do
Riven chỉ còn HP. Mỗi lần bước vào một ô bẫy, anh mất HP. Nếu HP giảm về , anh sẽ chết. Mỗi bước di chuyển (lên, xuống, trái hoặc phải sang ô kề cạnh) tốn đơn vị thời gian.
Yêu cầu: Tìm thời gian ngắn nhất để Riven tới được điểm đích mà vẫn còn sống.
Dữ liệu vào
- Dòng đầu tiên chứa hai số nguyên , : số hàng và số cột.
- dòng tiếp theo, mỗi dòng chứa ký tự (không có dấu cách) mô tả mê cung. Lưới chỉ gồm các ký tự
S(xuất phát),D(đích),+(bẫy) và-(ô an toàn).
Dữ liệu ra
In ra số bước ít nhất để Riven tới điểm đích với HP . Nếu không có cách nào, in ra .
Ràng buộc
- Lưới có đúng một ô
Svà đúng một ôD.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 4 S++D ---- |
3 | Đi thẳng sang phải qua hai bẫy, còn HP khi tới đích. |
| 2 5 S+++D +-+-- |
6 | Đi thẳng phải qua ba bẫy thì chết. Đường chỉ qua hai bẫy. |
Bình luận