uses crt, graph; var l, x, y, sk, r:integer; gr, gm: integer; type from_type = (_none, _left, _right, _up, _down); procedure ll(x,y,l,r,sk:integer; dir: from_type); begin line(x,y, x, y+l); if dir <> _up then circle(x,y+l,r); line(x,y, x, y-l); if dir <> _down then circle(x,y-l,r); line(x,y, x+l, y); if dir <> _right then circle(x+l,y,r); line(x,y, x-l, y); if dir <> _left then circle(x-l,y,r); if sk>1 then begin if dir <> _right then ll(x+l, y, l div 4, r div 4, sk-1, _left); if dir <> _left then ll(x-l, y, l div 4, r div 4, sk-1, _right); if dir <> _down then ll(x, y-l, l div 4, r div 4, sk-1, _up); if dir <> _up then ll(x, y+l, l div 4, r div 4, sk-1, _down); end; end; begin clrscr; readln(l); x:=300; y:=240; r:=trunc(l/2); readln(sk); gr:=9; gm:=2; initgraph(gr,gm, ''); ll(x,y,l,r,sk, _none); readkey; end.