Quái vật và lọ thuốc
Đề bài
Mô tả
Có một dãy gồm ô được đánh số từ đến từ trái sang phải. Mỗi ô được mô tả bởi một số nguyên :
- : ô trống.
- : ô chứa một quái vật có máu .
- : ô chứa một lọ thuốc có giá trị .
Trên dãy có anh hùng, anh hùng thứ đứng ở ô (ô này chắc chắn trống) và có máu. Các vị trí đôi một khác nhau.
Bạn cần chọn một ô tập kết (là một ô bất kỳ trong ô, có thể là ô trống, ô có quái vật hoặc ô có lọ thuốc), rồi lần lượt điều khiển từng anh hùng đi tới ô tập kết đó. Mỗi lần chỉ một anh hùng di chuyển; khi anh hùng đó đã tới ô tập kết mới điều khiển anh hùng tiếp theo.
Trong một lần di chuyển, anh hùng đi thẳng về phía ô tập kết theo từng ô một, không được đổi hướng hay đi lùi. Khi bước vào một ô:
- Ô trống: máu không đổi.
- Ô có quái vật máu : nếu máu hiện tại của anh hùng thì anh hùng thắng, máu bị trừ đi (anh hùng vẫn sống nếu máu về đúng ) và quái vật biến mất, ô trở thành trống. Nếu máu hiện tại thì anh hùng thua và bạn thất bại.
- Ô có lọ thuốc giá trị : máu anh hùng được cộng thêm , lọ thuốc biến mất, ô trở thành trống.
Mọi thay đổi của dãy được giữ nguyên qua các lượt di chuyển kế tiếp: một quái vật đã bị tiêu diệt hay một lọ thuốc đã bị uống sẽ không còn nữa. Nhiều anh hùng có thể cùng đứng ở một ô.
Hãy chọn ô tập kết và thứ tự di chuyển sao cho mọi anh hùng đều tới được ô tập kết và còn sống, hoặc cho biết điều đó là không thể.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và .
- dòng tiếp theo, dòng thứ chứa và .
- Dòng cuối chứa số nguyên .
Dữ liệu ra
Nếu không tồn tại cách chọn hợp lệ, in ra một số .
Ngược lại, in ra:
- Dòng đầu: chỉ số ô tập kết.
- Dòng thứ hai: số nguyên là thứ tự di chuyển của các anh hùng (đánh số từ đến theo thứ tự trong dữ liệu vào).
Nếu có nhiều đáp án, in ra bất kỳ đáp án nào.
Ràng buộc
- ; .
- , các đôi một khác nhau, mỗi ô là ô trống.
- .
- .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 8 3 8 2 1 3 4 9 0 3 -5 0 -5 -4 -1 0 |
6 3 1 2 |
Ô tập kết là ô . Anh hùng (ô , máu ) đi phải: gặp quái vật ở ô còn máu, quái vật ở ô còn máu, sống và dọn sạch ô . Anh hùng (ô , máu ) đi trái: quái vật ở ô còn máu, ô đã trống. Anh hùng (ô , máu ) đi phải: uống lọ ở ô thành , hạ quái vật ở ô còn , phần còn lại đã trống. |
| 8 3 1 15 5 10 8 1 0 -5 -5 -5 0 -5 -5 0 |
7 2 1 3 |
Ô tập kết là ô . Anh hùng đi trước dọn quái vật ở ô , sau đó anh hùng và đi qua đường đã sạch. |
| 3 2 1 1 3 1 0 -5000 0 |
-1 | Ô có quái vật máu . Dù chọn ô tập kết nào, luôn có một anh hùng buộc phải bước qua ô và bị tiêu diệt, nên không có cách nào. |
Bình luận