Cod sursa(job #152254)

Utilizator Clau2000GOREA CLAUDIU-CRISTIAN Clau2000 Data 9 martie 2008 11:57:54
Problema Generare de permutari Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.99 kb
var f,g:text;
    n:byte;
    sol:array[1..9]of byte;

procedure init(vf:byte);
begin
        sol[vf]:=0;
end;

function succ(vf:byte):boolean;
begin
   if sol[vf]<n then
   begin
      inc(sol[vf]);
      succ:=true;
   end else
       succ:=false;
end;

function valid(vf:byte):boolean;
var i:byte;
begin
     valid:=true;
     for i:=1 to vf-1 do
         if sol[i]=sol[vf] then valid:=false;
end;

function ok(vf:byte):boolean;
begin
   if vf=n+1 then ok:=true
            else ok:=false;
end;

procedure tipar;
var i:byte;
begin
   for i:=1 to n do
      write(g,sol[i],' ');
   writeln(g);
end;

procedure perm(vf:byte);
begin
   if ok(vf) then tipar
      else
      begin
         init(vf);
         while succ(vf) do
            if valid(vf) then perm(vf+1);

      end;
end;

begin
     assign(f,'permutari.in');
     assign(g,'permutari.out');
     reset(f);
     rewrite(g);
     read(f,n);
     perm(1);

     close(f);
     close(g);
end.