Cod sursa(job #220947)

Utilizator Adrian001Vladulescu Adrian Adrian001 Data 13 noiembrie 2008 20:39:00
Problema Combinari Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.06 kb
Type stiva=array[1..18] of integer;
var f,g:text;
    st:stiva;
    n,k,i,k1:integer;
    as,ev:boolean;

procedure init(var st:stiva;k:integer);
Begin
 If k>1 then st[k]:=st[k-1]
        else st[k]:=0;
end;

 procedure succesor(var as:boolean;var st:stiva;k:integer);
 Begin
 If st[k]<n then Begin
                  st[k]:=st[k]+1;
                  as:=true;
                 end
            else as:=false;
 end;


 function solutie(k:integer):boolean;
 Begin
 solutie:=(k=k1);
 end;

 procedure tipar;
 Begin
 For i:=1 to k do Write(g,st[i],' ');
 Writeln(g);
 end;

 Begin
 Assign(f,'combinari.in');Reset(f);
 Assign(g,'combinari.out');Rewrite(g);
 Read(f,n,k1);
 k:=1;
 init(st,k);
 While k>0 do
  Begin
   succesor(as,st,k);
   if as then Begin
               If solutie(k) then tipar
                             else Begin
                                   k:=k+1;
                                   init(st,k);
                                  end;
              end
         else k:=k-1;
  end;
Close(f);
Close(g);
end.