Cod sursa(job #1125024)

Utilizator EuBossuletMuntea Andrei EuBossulet Data 26 februarie 2014 15:16:01
Problema Problema Damelor Scor 50
Compilator fpc Status done
Runda Arhiva educationala Marime 0.94 kb
Program dame;
var f,q:text;
    a:array[1..13] of byte;
    n,nr:byte;
procedure tpar;
var i:integer;
begin
        for i:=1 to n do write(q,a[i],' ');
        writeln(q);
end;
function valid(k:integer):boolean;
var i:integer;
begin
        valid:=true;
        if k>=2 then
        begin
           for i:=1 to k-1 do
                if (a[k]=a[i]) or (k-i = abs(a[k]-a[i])) then valid:=false;
        end;

end;
procedure back(k:integer);
var i:integer;
begin
        if k<=n then
        begin
                for i:=1 to n do begin
                        a[k]:=i;
                        if valid(k) then begin

                                back(k+1);

                                end;
        end;
        end
        else begin inc(nr); if nr=1 then tpar; end;
end;
begin
assign(f,'damesah.in');
reset(F);
assign(q,'damesah.out');
rewrite(q);
readln(f,n);
back(1);
write(q,nr);
close(F);
close(q);
end.