Cod sursa(job #1622080)

Utilizator DoubleNyNinicu Cristian DoubleNy Data 1 martie 2016 00:52:32
Problema Problema Damelor Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1.05 kb
uses dos;
var n,k,nrSol:longint;
    v:array[1..14] of integer;

function valid(k:integer):boolean;
  var i,j:integer;
  begin
   valid:=true;
   for i:=1 to k-1 do
    if (v[i]=v[k]) or (k-i=abs(v[k]-v[i])) then valid:=false;



  end;

function solutie(k:integer):boolean;

 begin
   solutie:=true;
   if k<>n then solutie:=false;
   if solutie=true then inc(NrSol);


 end;

procedure afisare(k:integer);
var i:integer;
 begin
  for i:=1 to k do write(output,v[i],' ');
  writeln;

 end;


procedure back(k:integer);
var i:integer;
  begin
     for i:=1 to n do
       begin
         v[k]:=i;
         if (valid(k)) then
          begin
            if (solutie(k)) and (nrSol=1)  then afisare(k)
            else
            back(k+1);
          end;


       end;



  end;

Begin
    // assign(input,'damesah.in'); reset(input);
    // assign(output,'damesah.out'); rewrite(output);
     nrSol:=0;
     readln(input,n);
     back(1);
     writeln(output,nrSol);
    // close(input);
    // close(output);
end.