Đường ra khỏi mê cung
Xem dạng PDF
Gửi bài giải
Điểm:
7,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch
Một mê cung được biểu diễn bởi bảng ~n × m~. Mỗi ô chứa một trong bốn ký hiệu:
.: ô trống có thể đi qua;#: tường không thể đi qua;A: vị trí xuất phát;B: đích cần tới.
Mỗi bước được đi từ một ô sang ô chung cạnh theo một trong bốn hướng trái, phải, lên hoặc xuống. Hãy xác định có đường từ A tới B hay không. Nếu có, hãy in một đường đi ngắn nhất.
Input
- Dòng đầu gồm hai số nguyên ~n~ và ~m~, lần lượt là số hàng và số cột của mê cung.
- Trong ~n~ dòng tiếp theo, mỗi dòng là một xâu gồm đúng ~m~ ký tự mô tả một hàng của mê cung.
- Mê cung có đúng một ô
Avà đúng một ôB.
Output
- Nếu không thể tới đích, in
NO. - Nếu có thể, dòng đầu in
YES, dòng thứ hai in số bước của đường đi ngắn nhất, dòng thứ ba in chuỗi mô tả đường đi gồm các ký tựL,R,U,D, lần lượt tương ứng với trái, phải, lên, xuống. - Nếu có nhiều đường đi ngắn nhất, có thể in bất kỳ một đường nào.
Giới hạn
- ~1 ≤ n ≤ 1000~.
- ~1 ≤ m ≤ 1000~.
- Mỗi dòng bản đồ có đúng ~m~ ký tự.
Ví dụ
Input
5 8
########
#.A#...#
#.##.#B#
#......#
########
Output
YES
9
LDDRRRRRU
Giải thích ví dụ
Chuỗi LDDRRRRRU có 9 ký tự, tương ứng với 9 bước đưa A tới B mà không đi qua tường. Không tồn tại đường hợp lệ nào có ít hơn 9 bước.
Bình luận