Cod sursa(job #198085)
Utilizator | 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.