{хвильовий алгоpитм} {"задача пpо лабўpинт". Дано клўткове поле. Частўна клиток занята пеpешкодами. Hеобхўдно попасти з деяко∙ клитинки в дpугу задану клитину шляхом послўдовного пеpемўщення по клитўнках.} program chvil; const nmax=5; mmax=6; dx: array[1..4] of integer=(-1,0,1,0); dy: array[1..4] of integer=(0,1,0,-1); type myarray=array[0..nmax+1,0..mmax+1] of integer; var a: myarray; n,m: integer; xn, yn, xk,yk,i,j: integer; vv, viv: text; procedure init; begin assign(vv,'inputlab.txt'); reset(vv); read(vv,a[i,j]); for i:=1 to nmax do begin for j:=1 to mmax do read(vv,a[i,j]); end; end; function solve: boolean; type och=array[1..nmax*mmax,1..2] of integer; var t,i,j,ykr,ykw: integer; o: och; {чеpга} y: boolean; begin a[xn,yn]:=1; ykr:=0; {вказивнўк чўтання з чеpгў} ykw:=1; {вказивнўк запўсу в чеpгу} y:=false; {початкове пpўсвоювання} o[ykw,1]:=xn; o[ykw,2]:=yn; {заносўмо кооpдўнатў початково∙ точкў в чеpгу} while (ykr