Шешімі: Алгоритм для Робота
На бесконечном поле имеется горизонтальная стена. Длина стены неизвестна. От правого конца стены вверх отходит вертикальная стена, также неизвестной длины. Робот находится в углу между вертикальной и горизонтальной стеной. Напишите алгоритм для Робота, закрашивающий все клетки, расположенные выше горизонтальной стены и левее вертикальной стены и прилегающие к ним. Робот должен закрасить только клетки, удовлетворяющие заданному условию. Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера и любого допустимого расположения стен. При исполнении алгоритма Робот не должен разрушиться, выполнение алгоритма должно завершиться.


Шешімін қадамдап көрсету
4 қадамСначала закрашиваем клетку, в которой Робот находится в углу между стенами.
Двигаемся влево вдоль горизонтальной стены. На каждой клетке закрашиваем её. Цикл завершается у левого конца горизонтальной стены.
$$нц пока слева свободно влево закрасить кц$$Возвращаемся вправо до вертикальной стены. Все клетки этого ряда уже закрашены, поэтому повторно закрашивать их не требуется.
$$нц пока справа свободно вправо кц$$Из угла поднимаемся вверх вдоль вертикальной стены и закрашиваем каждую клетку слева от неё.
$$нц пока сверху свободно вверх закрасить кц$$закрасить
нц пока слева свободно
влево
закрасить
кц
нц пока справа свободно
вправо
кц
нц пока сверху свободно
вверх
закрасить
кц
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Не закрашивают исходную клетку в углу.
Поднимаются вверх до возвращения к вертикальной стене.
Используют безусловное перемещение через стену.
Забывают закрашивать клетки во время движения вверх или влево.