ROBOT


  • Робот
    ROBOT

Описание
Робот живет на прямоугольном клетчатом поле, которое состоит из N строк и M столбцов (0<N, M≤100) и в каждый момент времени занимает одну какую-то клеточку. Каждая клеточка может находиться в одном из двух состояний: "закрашено" или "не закрашено". В начальный момент времени Робот находится в левом верхнем углу поля (первая строка, первый столбец) и все клеточки поля не закрашены. Робот умеет выполнять команды типа "перейти в соседнюю клеточку" и "закрасить текущую клеточку". На языке Робота они выглядят так: L, R, U, D, P – соответственно "влево", "вправо", "вверх", "вниз", "закрасить".

На листе бумаги в клеточку размера N×M художник нарисовал картину. Задача заключается в том, чтобы составить программу на языке команд Робота, с помощью которой Робот отобразит картину художника на своем поле.

Задача
Составьте программу ROBOT, которая:

  1. Вводит из текстового ASCII-файла ROBOT.DAT числа N и M, а также картину художника

  2. Переводит картину в команды робота

  3. Выводит результат в текстовый ASCII-файл ROBOT.SOL


Формат входных данных
Исходные данные заданы в файле
ROBOT.DAT следующим образом: в первой строке файла расположены числа N и M, разделенные пробелом, остальные N строк (необязательно одинаковой длины) заполнены символами "*"(звездочка) и пробел - символ "." (точка). Символ "*" в j-й позиции i-й строки означает, что клеточка на пересечении i-й строки и j-го столбца поля Робота должна быть закрашена

Формат выходных данных
Результат – это последовательность символов L, R, U, D, P, между которыми допускаются разделители: пробелы либо концы строк, вывести в файл
ROBOT.SOL

Из двух программ ROBOT лучшей считается та, которая создаёт более короткую последовательность команд


Например:

ROBOT.DAT
4 4
. . . .
* . * .
. . . *
. . * .

ROBOT.SOL
D
PRR
PDD
PR
UP