Cod sursa(job #730446)

Utilizator acs_davidAcs David acs_david Data 6 aprilie 2012 12:38:32
Problema Combinari Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 1.39 kb
type tomb=array[1..100] of integer;
var v:array[1..100] of integer;k,jo,n,van,p:integer;f,g:text;
procedure kovetkezo(k:integer;var van:integer);
begin
        van:=0;
        if v[k]<n then
        begin
                v[k]:=v[k]+1;
                van:=1;
        end;
end;
procedure ellenoriz(k:integer;var jo:integer);
var i:integer;
begin
        jo:=1;
        i:=1;
        while(k<>i) and (jo=1) do
        begin
                if v[i]>=v[k] then
                        jo:=0;
                i:=i+1;
                end;
end;
function megoldas(k:integer):integer;
var a:integer;
begin
a:=0;
if k=p then
        a:=1;
megoldas:=a;
end;
procedure kiir(k:integer;v:tomb);
var i:integer;
begin
writeln;
        for i:=1 to k do
                write(g,v[i],' ');
end;
begin
assign(f,'combinari.in');assign(g,'combinari.out');reset(f);read(f,n,p);k:=1;v[k]:=0;close(f);
rewrite(g);
while k>0 do
begin
        repeat
                kovetkezo(k,van);
                if van=1 then
                        ellenoriz(k,jo);
        until ((van=1) and (jo=1)) or (van=0);
        if van=0 then
                k:=k-1
        else
                if megoldas(k)=1 then
                        kiir(k,v)
                else
                begin
                        k:=k+1;
                        v[k]:=0;
                end;
end;
close(g);
end.