Cod sursa(job #189807)

Utilizator 05_YohnE1 La5c01 05_Yohn Data 18 mai 2008 14:20:02
Problema Combinari Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.59 kb
program aaa;
type stiva=array[1..20] of byte;
var x:stiva;
n,t:byte;
f,g:text;

procedure afisare(k:byte);
var i:integer;
begin
for i:=1 to k do write(g,x[i],' ');
writeln(g);

end;


function conti(k:byte):boolean;
var  ok:boolean;
     i:byte;
begin
ok:=true;
for i:=1 to k-1 do if x[i]=x[k] then begin
                                     ok:=false;
                                     break;
                                     end;
conti:=ok;
end;


procedure back(var x:stiva;n:byte;t:byte);
var k:integer;caut,tz:boolean;
begin
k:=1;
x[k]:=0;
while k>0 do begin
             {caut o val buna}
             caut:=false;tz:=false;
             while (not caut) and (x[k]<t) do begin
                              x[k]:=x[k]+1;
                              if conti(k) then begin
                                          if k=n then begin
                                                      afisare(k);
                                                      tz:=true;
                                                      end
                                                 else caut:=true;
                                          end;
                              end;
             if (not caut)and(not tz) then k:=k-1
                         else begin
                                          k:=k+1;
                                          x[k]:=x[k-1];
                                          end;
              end;
end;

begin
assign(f,'combinari.in');
assign(g,'combinari.out');
reset(f);
rewrite(g);
read(f,t,n);
back(x,n,t);
close(g);
end.