Домашняя работа

На бес­ко­неч­ном поле име­ет­ся лестница. Сна­ча­ла лестница под­ни­ма­ет­ся вверх слева направо, потом опус­ка­ет­ся вниз также слева направо. Пра­вее спуска лест­ни­ца переходит в го­ри­зон­таль­ную стену. Вы­со­та каждой ступени — 1 клетка, ширина — 1 клетка. Ко­ли­че­ство ступенек, ве­ду­щих вверх, и ко­ли­че­ство ступенек, ве­ду­щих вниз, неизвестно. Между спус­ком и подъ­емом ширина площадки — 1 клетка. Робот на­хо­дит­ся в клетке, рас­по­ло­жен­ной в на­ча­ле спуска. На ри­сун­ке указан один из воз­мож­ных способов рас­по­ло­же­ния стен и Ро­бо­та (Робот обо­зна­чен буквой «Р») .

                                 

Напишите для Ро­бо­та алгоритм, за­кра­ши­ва­ю­щий все клетки, рас­по­ло­жен­ные непосредственно над лестницей. Робот дол­жен закрасить толь­ко клетки, удо­вле­тво­ря­ю­щие данному условию. Например, для приведённого выше ри­сун­ка Робот дол­жен закрасить сле­ду­ю­щие клетки (см. рисунок).

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