Pagini recente » Cod sursa (job #3292849) | Diferente pentru implica-te/arhiva-educationala intre reviziile 28 si 223 | Cod sursa (job #148071) | Cod sursa (job #3275056) | Cod sursa (job #202303)
Cod sursa(job #202303)
program perm;
type stiva = array[1..18] of byte;
var st:stiva;
i,n,k,m:byte;
as,ev:boolean;
f,g:text;
procedure succesor(k:integer;var st:stiva;var as:boolean);
begin
if st[k]<n then begin
as:=true;
inc(st[k]);
end
else as:=false;
end;
procedure valid(k:integer;st:stiva;var ev:boolean);
begin
ev:=true;
if (k>1) and (st[k]<=st[k-1]) then ev:=false;
end;
BEGIN
assign(f,'combinari.in');reset(f);
readln(f,n,m);close(f);
assign(g,'combinari.out');rewrite(g);
k:=1; st[k]:=0;
while k>0 do
begin
repeat succesor(k,st,as);
if as then valid(k,st,ev);
until (as and ev) or (not as);
if as then
if k=m then begin
for i:=1 to m do write(g,st[i],' ');
writeln(g);
end
else
begin
k:=k+1;
st[k]:=0;
end
else k:=k-1;
end;
close(g);
END.