 ROBOT
| Описание Робот живет на прямоугольном клетчатом поле, которое состоит из N строк и M столбцов (0<N, M≤100) и в каждый момент времени занимает одну какую-то клеточку. Каждая клеточка может находиться в одном из двух состояний: "закрашено" или "не закрашено". В начальный момент времени Робот находится в левом верхнем углу поля (первая строка, первый столбец) и все клеточки поля не закрашены. Робот умеет выполнять команды типа "перейти в соседнюю клеточку" и "закрасить текущую клеточку". На языке Робота они выглядят так: L, R, U, D, P – соответственно "влево", "вправо", "вверх", "вниз", "закрасить". На листе бумаги в клеточку размера
N×M художник нарисовал картину. Задача заключается в том, чтобы составить программу на языке команд Робота, с помощью которой Робот отобразит картину художника на своем поле. Задача Составьте программу ROBOT, которая: Вводит из текстового ASCII-файла ROBOT.DAT числа N и M, а также картину художника Переводит картину в команды робота Выводит результат в текстовый 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
|
|---|