Ответ: Алгоритм для Робота
Алгоритм должен последовательно обойти внешнюю сторону нижней, правой и верхней стен, а затем закрасить участки левой стены, пропуская клетки напротив прохода.
У этого задания официального ключа нет, поэтому ответ получен в разборе и с ключом не сверен. Перед тем как заучивать результат, пройдите выкладки — там видно, откуда взялось каждое число.
На бесконечном поле имеются четыре стены, соединённые между собой, которые образуют прямоугольник. Длины стен неизвестны. В левой вертикальной стене есть ровно один проход. Проход не может примыкать к углу прямоугольника. Точное место прохода и ширина прохода неизвестны. Робот находится около нижнего конца левой вертикальной стены, снаружи прямоугольника и выше нижней стены.
Напишите для Робота алгоритм, закрашивающий все клетки, расположенные вдоль стен прямоугольника с внешней стороны и угловые клетки. Проход должен остаться незакрашенным. Робот должен закрасить только клетки, удовлетворяющие данному условию. Алгоритм должен работать для любого допустимого расположения стен и любого расположения и размера прохода внутри стены. При исполнении алгоритма Робот не должен разрушиться, выполнение алгоритма должно завершиться. Конечное расположение Робота может быть произвольным.
Где здесь ошибаются
Закрашивание клеток прохода на левой стене.
Попытка пройти сквозь стену при переходе между сторонами прямоугольника.
Отсутствие закрашивания угловых клеток.
Использование фиксированного числа шагов вместо циклов с проверкой условий.
Завершение движения до обхода всех четырёх сторон.