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


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