Cod sursa(job #265550)

Utilizator DanielGGlodeanu Ioan Daniel DanielG Data 24 februarie 2009 00:55:58
Problema Loto Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.34 kb
type stiva=array[1..7] of integer;
var f:text;
s,suma,max:longint;
n:byte;  ok,as,ev:boolean;
i,k:integer;
st:stiva;
v:array[1..100] of longint;
procedure tipar;
var i:integer;
begin
assign(f,'loto.out');rewrite(f);
for i:=1 to k do
    write(f,v[st[i]],' ');
close(f);
ok:=false;
end;
begin
assign(f,'loto.in');reset(f);
read(f,n,s);
ok:=true;
for i:=1 to n do
    begin
    read(f,v[i]);
    if v[i]>max then max:=v[i];
    end;
st[1]:=0; k:=1;
while k>0 do
      begin
      repeat
      as:=false;
      if st[k]<n then
         begin
         inc(st[k]);
         as:=true;
         end;
      if as then
         begin
         suma:=0;
         for i:=1 to k do
             suma:=suma+v[st[i]];
         ev:=true;
         if (suma>s) or (k>6) then
            ev:=false;
         end;
      until (as and ev) or (not as);
      if as then
         begin
              suma:=0;
              for i:=1 to k do
                  suma:=suma+v[st[i]];
              if (suma=s) and (k=6) then tipar
                 else
                     begin
                     inc(k);
                     st[k]:=0;
                     end;
              end
                 else dec(k);
         end;
if ok then
   begin
   assign(f,'loto.out');rewrite(f);
   writeln(f,'-1');
   close(f);
   end;
end.