ВУЗ:
Составители:
Рубрика:
41
procedure TryM(x,y: integer; var Success: boolean);
procedure Try0(i,x,y: integer);
var k, // номер кандидата
u,v: integer; // координаты следующего хода коня
begin
k:=0;
repeat
Inc(k);
u:=x+dx[k]; v:=y+dy[k];
if (u>0) and (u<=n) and (v>0) and (v<=n) and
(Solution[u,v]=0) then
begin
Solution[u,v]:=i;
if i<n*n then
begin
Try0(i+1,u,v);
if not Success then
Solution[u,v]:=0;
end
else Success:=True;
end
until Success or (k=8);
end;
var i,j: integer;
begin // TryM
for i:=1 to n do
for j:=1 to n do
Solution[i,j]:=0;
Solution[x,y]:=1;
Success:=False;
Try0(2,x,y);
end; // TryM
var x0,y0: integer;
Success: boolean;
begin // основная программа
read(x0,y0);
TryM(x0,y0,Success);
if Success then
WriteArr(Solution,n); // вывод массива ходов
else writeln('решений нет');
end.