Cod sursa(job #420179)

Utilizator TamasionutzIoan-Cornel Tamas Tamasionutz Data 18 martie 2010 17:12:48
Problema Combinari Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1.04 kb
type vector=array[1..25] of integer;
var st:vector;
    n,k,p:integer;
    f:text;

procedure init(k:integer);
begin
     st[k]:=0;
end;

procedure afis;
var i:integer;
begin
     for i:=1 to n-1 do write(f, st[i],' ');
     writeln(f);
end;

function succesor(k:integer):boolean;
begin
     if st[k]<n then
        begin
             Inc(st[k]); succesor:=true;
        end
     else succesor:=false;
end;

function solutie(k:integer):boolean;
begin
     solutie:=(k=p+1);
end;

function valid(k:integer):boolean;
var i:integer;
begin
     if (k>1) and (st[k] <= st[k-1]) then valid:=false
     else  valid:=true;
end;

procedure back(k:integer);
begin
     if solutie(k) then afis
     else
         begin
              init(k);
              while succesor(k) do
                    if valid(k) then
                       back(k+1);
         end;
end;

begin
     assign(f,'combinari.in'); reset(f);
     readln(f,n,p); close(f);
     assign(f,'combinari.out'); rewrite(f);
     back(1); close(f);
end.