Cod sursa(job #493097)

Utilizator FLORINSTELISTUOprea Valeriu-Florin FLORINSTELISTU Data 17 octombrie 2010 10:19:33
Problema Generare de permutari Scor 20
Compilator fpc Status done
Runda Arhiva educationala Marime 0.98 kb
program permutari;
var n:integer;f,g:text;
    sol:array[1..100]of integer;
procedure init(k:integer);
begin
    sol[k]:=0;
    end;
function succesor(k:integer):boolean;
begin
   if sol[k]<n then begin
    sol[k]:=sol[k]+1;
    succesor:=true;
    end
               else succesor:=false;
   end;
function valid(k:integer):boolean;
var i:integer;
begin
      valid:=true;
       for i:=1 to k-1 do
        if sol[i]=sol[k] then valid:=false;
       end;
function solutie(k:integer):boolean;
begin
     solutie:=(k=n+1);
     end;
procedure tipar;
var i:integer;
begin
    for i:=1 to n do write(g,sol[i]);
    writeln;
end;
procedure back(k:integer);
begin
   if solutie(k) then tipar
                 else begin
    init(k);
     while succesor(k) do
      if valid(k) then back(k+1);
      end;
     end;
begin
     assign(f,'permutari.in');reset(f);
     assign(g,'permutari.out');rewrite(g);
      readln(f,n);
     back(1);
     close(f);close(g);
end.