Robot phá bom
Đề bài
Mô tả
Trên mặt phẳng toạ độ có quả bom, quả bom thứ nằm tại điểm . Không có hai quả bom nào ở cùng một điểm, và không có quả bom nào ở gốc toạ độ .
Một con robot xuất phát tại . Gọi vị trí hiện tại của robot là . Robot có thể thực hiện ba loại thao tác:
1 k dir— di chuyển bước () theo hướng , trong đó là một trong bốn ký tựR,L,U,Dtương ứng với việc mỗi bước đi từ sang , , , . Thao tác này không được phép nếu có ít nhất một điểm trên đường đi (kể cả điểm xuất phát, nhưng không kể điểm đích) đang chứa bom.2— nhặt quả bom tại vị trí hiện tại và cho vào khoang chứa. Không được phép nếu tại không có bom, hoặc nếu khoang chứa đang có sẵn một quả bom.3— lấy quả bom trong khoang chứa ra và phá huỷ nó. Chỉ được phép khi robot đang ở và khoang chứa đang có bom.
Hãy tìm dãy thao tác ngắn nhất để phá huỷ toàn bộ quả bom.
Dữ liệu vào
- Dòng đầu chứa số nguyên — số quả bom.
- dòng tiếp theo, dòng thứ chứa hai số nguyên và — toạ độ quả bom thứ .
Dữ liệu ra
- Dòng đầu in ra số nguyên — số thao tác ít nhất cần thực hiện.
- dòng tiếp theo mô tả các thao tác theo đúng định dạng ở trên.
Nếu có nhiều dãy thao tác cùng đạt độ dài nhỏ nhất, in ra dãy bất kỳ. Dữ liệu đảm bảo luôn tồn tại lời giải với .
Ràng buộc
- Không có hai quả bom trùng vị trí, và không có bom tại
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 1 1 -1 -1 |
12 1 1 L 1 1 D 2 1 1 U 1 1 R 3 1 1 R 1 1 U 2 1 1 D 1 1 L 3 |
Mỗi quả bom có cả hai toạ độ khác nên cần thao tác đi, thao tác về, cộng với nhặt và phá: thao tác cho mỗi quả, tổng cộng . Ở đây robot xử lý trước rồi mới tới ; thứ tự ngược lại cũng được chấp nhận vì hai quả bom cách gốc như nhau. |
| 3 5 0 0 5 1 0 |
12 1 1 R 2 1 1 L 3 1 5 U 2 1 5 D 3 1 5 R 2 1 5 L 3 |
Cả ba quả bom đều nằm trên trục nên chỉ cần một thao tác di chuyển mỗi chiều: thao tác cho mỗi quả. Bắt buộc phải phá trước , vì nếu đi thẳng tới thì robot sẽ đi xuyên qua quả bom ở . |
Bình luận