v8pas

v8.pas

Pascal dilinde

{ 8 Queens }

program v8p(input,output);

type

list = array[1..8] of integer;

var

m: list;

i,n,d,a: integer;

label 100, 180, 210, 240, 270, 999;

begin

for i:=1 to 8 do m[i]:=1;

n:=0;

i:=1;

100: if i=1 then goto 180;

d:=0;

for a:=i-1 downto 1 do begin

d:=d+1;

if m[i]=m[a] then goto 210;

if m[i]+d=m[a] then goto 210;

if m[i]-d=m[a] then goto 210;

end;

180: i:=i+1;

if i=9 then goto 270;

goto 100;

210: m[i]:=m[i]+1;

if m[i]<9 then goto 100;

m[i]:=1;

240: i:=i-1;

if i>0 then goto 210;

goto 999;

270: n:=n+1;

writeln(n:2,' a',m[1],' b',m[2],' c',m[3],' d',m[4],' e',m[5],' f',m[6],' g',m[7],' h',m[8]);

goto 240;

999:

end.