Giới thiệu
Một gia đình hải cẩu bị mắc kẹt trên một tảng băng ở Vòng Bắc Cực. Có một máy phát radio được đặt trên tảng băng trôi mà hải cẩu có thể sử dụng để gọi trợ giúp. Tuy nhiên, chỉ có con dấu cha mới biết cách vận hành máy phát radio. Và tệ hơn nữa, băng rất trơn vào thời điểm này trong năm, do đó, hải cẩu sẽ trượt không kiểm soát được cho đến khi chúng đâm vào một con dấu khác hoặc trượt ra khỏi rìa tảng băng, khiến cho con hải cẩu rất khó tiếp cận máy phát radio. May mắn thay, một trong những con dấu là một nhà khoa học máy tính, vì vậy cô quyết định viết một chương trình để tìm ra cách điều khiển con dấu của cha đến máy phát radio. Vì không có nhiều không gian trên băng để viết chương trình, cô quyết định làm cho chương trình sử dụng càng ít byte càng tốt.
Mô tả đầu vào
Chương trình của con dấu sẽ lấy đầu vào từ STDIN, đối số dòng lệnh hoặc chức năng nhập của người dùng (chẳng hạn như raw_input()). Nó không thể được khởi tạo trước trong một biến (ví dụ: "Chương trình này mong đợi đầu vào trong một biếnx ").
Dòng đầu tiên của đầu vào bao gồm hai số nguyên được phân tách bằng dấu phẩy ở dạng
A,B
Theo sau đó là Bcác dòng bao gồm các Aký tự mỗi. Mỗi dòng chỉ có thể chứa các ký tự sau:
.: Trời lạnh, lạnh, đại dương. Bản đồ sẽ luôn có điều này như là một biên giới.#: Một phần của tảng băng trôi.a...z: Một con dấu không phải là con dấu của cha trên tảng băng trôi.D: Con dấu cha trên tảng băng trôi.*: Máy phát vô tuyến.
(Lưu ý rằng con dấu cha luôn được ký hiệu bằng chữ hoa D. Chữ thường dchỉ đơn giản là một con dấu thông thường.)
Mô tả đầu ra
Theo các quy tắc sau đây về cách con dấu có thể di chuyển, hãy đưa ra một danh sách các hướng dẫn cho con dấu về cách chúng nên di chuyển để đưa con dấu bố đến máy phát radio.
- Quy tắc: Tất cả các con dấu có thể di chuyển lên (
U), xuống (D), trái (L) và phải (R). Họ không thể trượt theo đường chéo. - Qui định: Khi di chuyển, một con hải cẩu sẽ tiếp tục di chuyển theo cùng một hướng cho đến khi nó va chạm với một con dấu khác hoặc rơi xuống biển.
- Nếu một con dấu va chạm với một con dấu khác, nó sẽ ngừng di chuyển. Con dấu nó va chạm với sẽ không di chuyển.
- Nếu một con hải cẩu rơi xuống biển, nó sẽ chết đuối và biến mất khỏi bản đồ. Đó là, nó không hoạt động như một máy va chạm cho các con dấu khác và nó không thể được di chuyển lại.
- Quy tắc: Hai con dấu không thể di chuyển cùng một lúc, con dấu cũng không thể di chuyển trong khi một con dấu khác vẫn đang di chuyển. Con dấu tiếp theo chỉ có thể được di chuyển khi con dấu trước đó đã ngừng di chuyển.
- Quy tắc: Không có hạn chế về việc di chuyển một con dấu nhiều lần, hoặc số lượng con dấu bị chết đuối.
- Quy tắc: Một giải pháp chính xác sẽ có kết thúc con dấu cha ở máy phát radio. Con dấu cha không thể đơn giản vượt qua máy phát trong khi trượt.
Đầu ra sẽ bao gồm một số dòng, mỗi dòng trong mẫu
A,B
Trong trường hợp Alà con dấu để di chuyển ( Dđối với con dấu cha, a... zcho người khác), và Blà định hướng để di chuyển con dấu (hoặc U, D, L, hoặc R). Lưu ý rằng bạn không cần phải tìm con đường ngắn nhất. Bất kỳ tuyến đường nào có được con dấu cha đến mục tiêu là một đầu ra chấp nhận được.
Ví dụ đầu vào và đầu ra
Đầu vào:
25,5
.........................
.#######################.
.####D#############*k###.
.#######################.
.........................
Đầu ra:
D,R
Đầu vào:
9,7
.........
.a#####b.
.#####d#.
.##l*###.
.###m#p#.
.#D#.#c#.
.........
Đầu ra (một đầu ra có thể trong số nhiều):
m,R
b,L
D,U
D,R
D,D
D,L
Đầu vào:
26,5
..........................
.###..................###.
.l*##########v#########D#.
.###..................###.
..........................
Đầu ra (một đầu ra có thể trong số nhiều):
v,D
D,L
Nếu bạn có bất kỳ câu hỏi nào khác, xin vui lòng hỏi trong các ý kiến.