Решение: Закрашивание клеток у стены
На бесконечном поле есть горизонтальная и вертикальная стены. Правый конец горизонтальной стены соединён с верхним концом вертикальной стены. В горизонтальной стене есть ровно один проход, его положение и ширина неизвестны. Робот находится рядом с вертикальной стеной слева от её нижнего конца. Напишите алгоритм, который закрасит все клетки, расположенные непосредственно выше и ниже горизонтальной стены, кроме клеток прохода. Робот не должен разрушиться, выполнение алгоритма должно завершиться, а алгоритм должен работать при любом допустимом расположении стен и прохода.


Решение по шагам
5 шаговРобот поднимается вдоль вертикальной стены до клетки непосредственно под правым концом горизонтальной стены.
Выполняется проход по нижней стороне горизонтальной стены. Если сверху находится стена, текущая клетка закрашивается; если сверху свободно, найден проход, и Робот поднимается через него.
После перехода через проход Робот перемещается по верхней стороне горизонтальной стены до её левого конца, закрашивая клетки, над которыми находится стена.
Затем Робот возвращается к проходу по верхней стороне, спускается через проход и проходит по нижней стороне до левого конца, закрашивая ещё не закрашенные клетки.
В завершение Робот снова проходит через проход на верхнюю сторону и движется к правому концу горизонтальной стены, закрашивая клетки под которыми находится стена. Клетки прохода не закрашиваются, так как над ними или под ними нет стены.
Алгоритм должен использовать вертикальную стену для выхода к горизонтальной, единственный проход — для перехода между сторонами стены, а проверки «сверху свободно» и «снизу свободно» — для исключения прохода.
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Закрашивание клеток прохода.
Попытка пройти сквозь стену без предварительной проверки.
Использование фиксированного числа шагов.
Обработка только одной стороны горизонтальной стены.
Отсутствие условия остановки в конце стены.