Cod sursa(job #34821)

Utilizator AymdTrimbitas Viorel Stefan Aymd Data 21 martie 2007 14:46:17
Problema Loto Scor 60
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.42 kb
var f,g:text;
    n,s,i,j,k,l,x,y,p:longint;
    a:array[1..100]of longint;
    v:boolean;

begin
assign(f,'loto.in');
reset(f);
assign(g,'loto.out');
rewrite(g);
readln(f,n,s);
for i:=1 to n do read(f,a[i]);
for i:=1 to n-1 do
   for j:=i+1 to n do
      if a[i]<a[j] then begin
                        p:=a[i];
                        a[i]:=a[j];
                        a[j]:=p;
                        end;
i:=0;
v:=true;
while (i<n)and v do begin
   i:=i+1;
   p:=a[i];
   j:=i-1;
   while (j<n) and v and (p<s+1) do begin
      j:=j+1;
      p:=p+a[j];
      k:=j-1;
      while (k<n) and v and(p<s+1) do begin
         k:=k+1;
         p:=p+a[k];
         l:=k-1;
         while (l<n) and v and (p<s+1) do begin
            l:=l+1;
            p:=p+a[l];
            x:=l-1;
            while (x<n) and v and (p<s+1) do begin
               x:=x+1;
               p:=p+a[x];
               y:=x-1;
               while (y<n) and v and (p<s+1) do begin
                 y:=y+1;
                 if p+a[y]=s then begin
                                  v:=false;
                                  write(g,a[i],' ',a[j],' ',a[k],' ',a[l],' ',a[x],' ',a[y]);
                                  end;
               end;
               p:=p-a[x];
            end;
            p:=p-a[l];
         end;
         p:=p-a[k];
      end;
      p:=p-a[j];
   end;
end;
if v then write(g,-1);
close(g);
end.