20 баллов. Задача 3. Робот
Петя увлекается робототехникой. Сегодня он тренируется в написании программ для Робота в лабиринте. Он написал такую программу:
ПОКА сверху стена или снизу стена:
ПОКА сверху стена:
сдвинься на 1 шаг вправо
ПОКА снизу стена:
сдвинься на 1 шаг влево
Теперь его интересует такой вопрос: сколько клеток в данном лабиринте (см. рисунок) таковы, что начав в них движение Робот будет двигаться вечно и никогда не разобьется? (При этом он именно движется, то есть, клетки, из которых Робот не сделает ни одного шага, нас не интересуют.) Тонкая линия разделяет клетки; стена — толстая черная линия.
Normalized 24.02
В качестве ответа выведите одно целое число — искомое количество клеток.
Комментарий.
1. Робот занимает ровно одну клетку лабиринта и может за один шаг переместиться на одну клетку влево, вправо, вниз или вверх, при условии, что на его пути нет стены. Если он врежется в стену, то Робот разобьется.
2. Условие ПОКА соответствует циклу while в языках программирования.
При этом есть один внешний цикл ПОКА и два внутренних (если верно условие у внешнего цикла, то на этой его итерации выполняются оба внутренних).
3. В лабиринте
нет ни одной клетки, начав движение в которой, Робот будет двигаться вечно (стартовав из любой клетки, он в итоге врежется в стену).