Advertisement
Guest User

Untitled

a guest
Jul 19th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. program eightqueen1(output);
  2.  
  3. var i : integer; q : boolean;
  4.     a : array[ 1 .. 8] of boolean;
  5.     b : array[ 2 .. 16] of boolean;
  6.     c : array[ −7 .. 7] of boolean;
  7.     x : array[ 1 .. 8] of integer;
  8.  
  9. procedure try( i : integer; var q : boolean);
  10.     var j : integer;
  11.     begin 
  12.     j := 0;
  13.     repeat 
  14.         j := j + 1; 
  15.         q := false;
  16.         if a[ j] and b[ i + j] and c[ i − j] then
  17.             begin 
  18.             x[ i    ] := j;
  19.             a[ j    ] := false; 
  20.             b[ i + j] := false; 
  21.             c[ i − j] := false;
  22.             if i < 8 then
  23.                 begin
  24.                 try( i + 1, q);
  25.                 if not q then
  26.                     begin 
  27.                     a[ j] := true; 
  28.                     b[ i + j] := true; 
  29.                     c[ i − j] := true;
  30.                     end
  31.                 end 
  32.             else 
  33.                 q := true
  34.             end
  35.     until q or (j = 8);
  36.     end;
  37.  
  38. begin
  39. for i :=  1 to  8 do a[ i] := true;
  40. for i :=  2 to 16 do b[ i] := true;
  41. for i := −7 to  7 do c[ i] := true;
  42. try( 1, q);
  43. if q then
  44.     for i := 1 to 8 do write( x[ i]:4);
  45. writeln
  46. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement