Đườ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 ô A và đú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 LDDRRRRRU9 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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.