Вариант 1
угол из двух стен (как в демоверсии)На бесконечном поле есть горизонтальная и вертикальная стены. Правый конец горизонтальной стены соединён с верхним концом вертикальной стены. Длины стен неизвестны. В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны. Робот находится в клетке, расположенной рядом с вертикальной стеной слева от её нижнего конца. Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно левее вертикальной стены и ниже горизонтальной стены. Проходы должны остаться незакрашенными.
Пример поля (Р — Робот, серым — клетки, которые нужно закрасить):
использовать Робот
алг
нач
| вдоль вертикальной стены вверх: до прохода, проход, после прохода
нц пока справа стена
закрасить
вверх
кц
нц пока справа свободно
вверх
кц
нц пока сверху свободно
закрасить
вверх
кц
| в углу; дальше влево вдоль горизонтальной стены
нц пока сверху стена
закрасить
влево
кц
нц пока сверху свободно
влево
кц
нц пока сверху стена
закрасить
влево
кц
конРазбор
Идея. Обе стены проходим по три цикла: «пока стена — красим и идём», «пока проход — просто идём», «пока снова стена — красим». Подъём вдоль вертикальной стены заканчивается, когда сверху появилась горизонтальная стена — это угол.
Алгоритм:
использовать Робот
алг
нач
| вдоль вертикальной стены вверх: до прохода, проход, после прохода
нц пока справа стена
закрасить
вверх
кц
нц пока справа свободно
вверх
кц
нц пока сверху свободно
закрасить
вверх
кц
| в углу; дальше влево вдоль горизонтальной стены
нц пока сверху стена
закрасить
влево
кц
нц пока сверху свободно
влево
кц
нц пока сверху стена
закрасить
влево
кц
конКритерии (по образцу ФИПИ): 2 балла — алгоритм правильно работает при всех допустимых исходных данных; 1 балл — работает, но есть не больше одной ошибки (например, лишняя или пропущенная клетка в одном случае); 0 баллов — в остальных случаях.