eolymp
bolt
Try our new interface for solving problems
Məsələlər

Без левых поворотов

Без левых поворотов

Человеку, находящемуся в некотором лабиринте, нужно попасть из одной клетки в другую. Каждый ход он может переместиться на одну клетку в одном из четырех направлений (вверх, вниз, влево или вправо), однако есть некоторые ограничения на его перемещения. Первоначальное направление движения он может выбирать произвольно. Однако после этого не разрешается разворачиваться на \textbf{180}° и делать левые повороты (повороты на \textbf{90}° против часовой стрелки). Таким образом разрешены лишь повороты на \textbf{90}° по часовой стрелке. Кроме того запрещается покидать пределы лабиринта. Напишите программу для нахождения кратчайшего разрешенного пути между заданными клетками. \InputFile В первой строке задаются два целых числа \textbf{M} и \textbf{N} (\textbf{1} ≤ \textbf{M}, \textbf{N} ≤ \textbf{1500}), определяющие размеры лабиринта. Дальше следуют \textbf{M} строк по \textbf{N} символов в каждом, описывающие лабиринт. Символ "\textbf{*}" обозначает стену (в соответствующую клетку не разрешается двигаться), "\textbf{.}" - свободная клетка, "\textbf{S}" - клетка, где изначально находится человек, "\textbf{D}" - клетка, куда нужно добраться. Начальная и конечная клетка считаются свободными и встречаются ровно по одному разу. \OutputFile В единственную строку выведите строку, определяющую кратчайшую последовательность ходов, которая сможет привести человека из начальной клетки в конечную без разворотов и левых поворотов. Символ "\textbf{U}" этой строки обозначает перемещение вверх на одну клетку, "\textbf{D}" - вниз, "\textbf{L}" - влево, "\textbf{R}" - вправо. Если добраться до конечной клетки без нарушения правил невозможно, выведите сообщение "\textbf{NO SOLUTION}" (без кавычек).
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
8 7
.......
.***.*.
.*...*.
.*.*..D
.*.***.
.*S....
.*****.
.......
Çıxış verilənləri #1
RRRRDDLLLLLLUUUUUUURRRRRRDDD
Müəllif Неспирный В.Н.
Mənbə III этап УОИ Донецк, 2012 г. II тур 10-11 кл.