Cod sursa(job #902216)

Utilizator tureanchristinetunich tureanchristine Data 1 martie 2013 13:18:11
Problema Dame Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.14 kb
program permutari;
var
f,g:text;
ok:boolean;
v:array[1..8] of integer;
i,k,n:integer;
function valid(k:integer) :boolean;
        begin
        valid:=true;
        for i:=1 to k-1 do
        if (v[i]=v[k]) or (abs(k-i)=abs(v[k]-v[i])) then valid:=false;
        end;
procedure tipar(n:integer);
         begin
         for i:=1 to n do
         writeln(g,i,' ',v[i]);
         writeln(g);
         end;
begin
assign(f,'dame.in');reset(f);
assign(g,'dame.out');rewrite(g);
read(f,n);
writeln(g,n);
k:=1;
v[k]:=0;
while k>0 do
        begin
        ok:=false;
        while(v[k]<n) and (ok=false) do
                begin
                v[k]:=v[k]+1;
                if valid(k) then ok:=true;
                end;
        if ok=false then k:=k-1
                     else if k=n then begin tipar(k);
                                             break;
                                             end
                                  else begin
                                       k:=k+1;
                                       v[k]:=0;
                                       end;
       end;
close(f);close(g);
end.