You are on page 1of 2

PERMUTARI program permutari; type stiva=array[1..20] of integer; var st:stiva; n,k:integer; as,ev:boolean; procedure init (k:integer; ar !t:!

ti a"; begin st[k]:=0; end; procedure !ucce!or (var as: boolean; var st: stiva; k:integer ; begin if st[k]!n t"en begin st[k]:=st[k]#1; as:=true; end else as:=false end; procedure a#id ( ar e :$oo#ean; !t:!ti a; k:integer"; var i:integer; begin ev:=true; for i:=1 to k$1 do if st[k]=st[i] t"en ev:=false end; %unction !o#utie (k:integer": $oo#ean; begin solutie:=(k=n end; procedure tipar; var i:integer; begin for i:=1 to n do %rite (st[i] ; %riteln; end; Begin %rite (&n=& ; readln(n ; k:=1; init (k,st ; %"ile (k'0 do begin repeat succesor (as, st, k ; if as t"en valid (ev,st,k ; until (not as or (as and ev ; if as t"en if solutie (k t"en tipar else begin k:=k#1; init (k,st end else k:=k$1 end readln; End&

ARANJAMENTE program aran'amente; type stiva=array[1..20] of integer; var st:stiva; n,k:integer; as,ev:boolean; procedure init (k:integer; ar !t:!ti a"; begin st[k]:=0; end; procedure !ucce!or (var as: boolean; var st: stiva; k:integer ; begin if st[k]!n t"en begin st[k]:=st[k]#1; as:=true; end else as:=false end; procedure a#id ( ar e :$oo#ean; !t:!ti a; k:integer"; var i:integer; begin ev:=true; for i:=1 to k$1 do if st[k]=st[i] t"en ev:=false end; %unction !o#utie (k:integer": $oo#ean; begin solutie:=(k=p end; procedure tipar; var i:integer; begin for i:=1 to p do %rite (st[i] ; %riteln; end; Begin %rite (&n=& ; readln(n ; %rite(&p=& ;readln(p ; k:=1; init (k,st ; %"ile (k'0 do begin repeat succesor (as, st, k ; if as t"en valid (ev,st,k ; until (not as or (as and ev ; if as t"en if solutie (k t"en tipar else begin k:=k#1; init (k,st end else k:=k$1 end readln; End&

COMBINARI program com$inari; type stiva=array[1..20] of integer; var st:stiva; n,k:integer; as,ev:boolean; procedure init (k:integer; ar !t:!ti a"; begin st[k]:=0; end; procedure !ucce!or (var as: boolean; var st: stiva; k:integer ; begin if st[k]!n$p#k t"en begin st[k]:=st[k]#1; as:=true; end else as:=false end; procedure a#id ( ar e :$oo#ean; !t:!ti a; k:integer"; var i:integer; begin ev:=true; for i:=1 to k$1 do if st[k]=st[i] t"en ev:=false if k'1 t"en st[k]!st[k$1] t"en ev:=false end; %unction !o#utie (k:integer": $oo#ean; begin solutie:=(k=p end; procedure tipar; var i:integer; begin for i:=1 to p do %rite (st[i] ; %riteln; end; Begin %rite (&n=& ; readln(n ; %rite(&p=& ; readln(p ; k:=1; init (k,st ; %"ile (k'0 do begin repeat succesor (as, st, k ; if as t"en valid (ev,st,k ; until (not as or (as and ev ; if as t"en if solutie (k t"en tipar else begin k:=k#1; init (k,st end else k:=k$1 end readln; End&

You might also like