Задача по информатике (Перемещение Робота в лабиринте)
Условие: Робот оказался в левом верхнем углу лабиринта. Помогите ему за минимальное количество шагов оказаться в правом нижнем углу в помеченной клетке (клетке с буквой "Б").
Требование: Напишите программу в одну строчку без пробелов маленькими буквами, используя следующие сокращения:
u– вверхd– внизl– влевоr– вправоp– закрасить клетку (хотя в этой задаче закрашивать не нужно, только переместиться)
Пример: Программа, сдвигающая Робота вправо, затем вверх и закрашивающая там клетку будет выглядеть так: rup
Рисунок лабиринта:
+---+---+---+---+---+ | R | | | | | +---+---+---+---+---+ | | | | | | +---+---+---+---+---+ | | | | | | +---+---+---+---+---+ | | | | | | +---+---+---+---+---+ | | | | | Б | +---+---+---+---+---+
На рисунке видно, что лабиринт представляет собой сетку 5x5 клеток. Робот (R) находится в левом верхнем углу (1-й столбец, 1-я строка). Целевая клетка "Б" находится в правом нижнем углу (5-й столбец, 5-я строка).
Решение:
Чтобы Робот переместился из левого верхнего угла в правый нижний угол, ему нужно сделать несколько шагов вправо и несколько шагов вниз.
Определим количество шагов:
- По горизонтали: Робот находится в 1-м столбце, а должен оказаться в 5-м столбце. Значит, ему нужно сделать \(5 - 1 = 4\) шага вправо.
- По вертикали: Робот находится в 1-й строке, а должен оказаться в 5-й строке. Значит, ему нужно сделать \(5 - 1 = 4\) шага вниз.
Для минимального количества шагов порядок движения не имеет значения (можно сначала все шаги вправо, потом все шаги вниз, или чередовать их). Главное – выполнить 4 шага вправо и 4 шага вниз.
Используем сокращения:
rдля шага вправоdдля шага вниз
Составим программу. Например, сначала все шаги вправо, потом все шаги вниз:
4 шага вправо: rrrr
4 шага вниз: dddd
Объединяем их в одну строку без пробелов:
rrrrdddd
Можно также сначала все шаги вниз, потом все шаги вправо:
ddddrrrr
Или чередовать их, например:
rdrdrdrd
Все эти варианты приведут Робота в нужную клетку за минимальное количество шагов (8 шагов). Поскольку в задаче не указано, какой именно порядок предпочтителен, любой из них будет верным. Выберем первый вариант как самый простой для записи.
Ответ:
rrrrdddd
