Cod sursa(job #897173)

Utilizator tureanchristinetunich tureanchristine Data 27 februarie 2013 19:14:26
Problema Generare de permutari Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.99 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] then valid:=false;
        end;
procedure tipar(n:integer);
         begin
         for i:=1 to n do
         write(g,v[i],' ');
         writeln(g);
         end;
begin
assign(f,'permutari.in');reset(f);
assign(g,'permutari.out');rewrite(g);
read(f,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 tipar(k)

                                  else begin
                                       k:=k+1;
                                       v[k]:=0;
                                       end;
       end;
close(f);close(g);
end.