Cod sursa(job #1368711)

Utilizator mihai1996Toader Mihai mihai1996 Data 2 martie 2015 19:33:40
Problema Problema Damelor Scor 90
Compilator fpc Status done
Runda Arhiva educationala Marime 1.04 kb
program dame;
var x:array[1..13] of integer;
    n,nr:integer;
    ok:boolean;

function cont(k:integer):boolean;
var i:integer;
begin
   cont:=true;
   for i:=1 to k-1 do
     if (x[i]=x[k]) or (abs(i-k)=abs(x[i]-x[k])) then
       begin
         cont:=false;
         break;
       end;
end;

procedure tipar(k:integer);
var i:integer;
begin
  if ok then
   begin
    for i:=1 to k do
      write(x[i],' ');
    writeln;
    ok:=false;
  end;
  inc(nr);
end;

procedure bkt;
var k:integer;
begin
  k:=1;
  x[k]:=0;
  while k>0 do
    if x[k]<n then
      begin
        x[k]:=x[k]+1;
        if cont(k) then
          if k=n then
            tipar(k)
              else
                begin
                  k:=k+1;
                  x[k]:=0;
                end;
      end
        else
          dec(k);
end;

begin
  assign(input,'damesah.in'); reset(input);
  assign(output,'damesah.out'); rewrite(output);
  readln(n);  nr:=0; ok:=true;
  bkt;
  writeln(nr);
  close(input); close(output);
end.