Cod sursa(job #198085)

Utilizator andrici_cezarAndrici Cezar andrici_cezar Data 8 iulie 2008 13:53:46
Problema Generare de permutari Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.03 kb
program permutari;
var  x:array[1..10] of byte;
     n,k,v,j:byte;
f,g:text;
function valid(k:integer):boolean;
var i:byte;
begin
 valid:=true;
 for i:=1 to k-1 do
    if x[k]=x[i] then begin
                      valid:=false;
                      exit;
                      end;
end;
begin
 assign(f,'permutari.in');reset(f);
assign(g,'permutari.out');rewrite(g);
read(f,n); 
x[1]:=0; k:=1;
 while k>0 do begin
              v:=0;
              while (v=0)and(x[k]+1<=n) do begin
                                           x[k]:=x[k]+1;
                                           if valid(k) then v:=1;
                                           end;
             if v=0 then k:=k-1
             else if k<n then begin
                              k:=k+1;
                              x[k]:=0;
                              end
                  else begin
                       for j:=1 to n do write(g,x[j],' ');
                       writeln(g);
                       end
            end;
close(g);
end.