Олимпиадные задачи по программированию. Лучшие решения. Часть 1. Ускова О.Ф - 52 стр.

UptoLike

end;
Count:=1;
d.x:=0; d.y:=1;
repeat
Dir:=D;
Cur.x:=0; Cur.y:=0;
Next.x:=Cur.x+Dir.x; Next.y:=Cur.y+Dir.y;
PushStack(Plan,T,B,L,R); {Сохраняем настройки }
OK:=GetNextMonkey(por) and GetMonkeys(por+1); {Добавляем
маршрут}
if OK then break; {Если OK выходим}
PopStack(Plan,T,B,L,R); {иначе восстановим настройки }
if d.x=0 then {и повернем обезьянку }
begin
d.x:=d.y; d.y:=0
end
else
begin
d.y:=-d.x;d.x:=0
end;
inc(Count)
until (Count=5) or OK;
GetMonkeys:=OK
end;
{***********************************}
{Инициализация поля }
procedure Clear;
var
i,j:integer;