Cod sursa(job #198083)
Utilizator | Andrici Cezar andrici_cezar | Data | 8 iulie 2008 13:49:38 |
---|---|---|---|
Problema | Generare de permutari | Scor | 0 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 0.99 kb |
program permutari;
var xarray[1..10] of byte;
n,k,v,jbyte;
function valid(kinteger)boolean;
var ibyte;
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 k0 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 kn 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;
end.