Pagini recente » Monitorul de evaluare | Cod sursa (job #1125163) | Cod sursa (job #739277) | Cod sursa (job #1331697) | Cod sursa (job #362593)
Cod sursa(job #362593)
var n:integer;
v:array[1..10] of integer;
procedure init(k:integer);
begin
v[k]:=0;
end;
function succ(k:integer):boolean;
begin
if v[k]<n then begin
inc(v[k]);
succ:=true;
end else succ:=false;
end;
function valid(k:integer):boolean;
var i:integer;
begin
valid:=true;
for i:=1 to k-1 do
if v[i]=v[k] then
valid:=false;
end;
function sol(k:integer):boolean;
begin
sol:=(k=n+1);
end;
procedure tip;
var i:integer;
begin
for i:=1 to n do
write(v[i],' ');
writeln;
end;
procedure back(k:integer);
begin
if sol(k) then tip
else begin
init(k);
while succ(k) do
if valid(k) then back(k+1);
end;
end;
begin
assign(input,'permutari.in');reset(input);
assign(output,'permutari.out');rewrite(output);
readln(n);
back(1);
close(input);close(output);
end.