Cod sursa(job #147183)

Utilizator Vlad-andreiVlad Fisca Vlad-andrei Data 2 martie 2008 17:44:25
Problema Loto Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.61 kb
program loto;
var f,g:text;
    a:array[1..100]of longint;
    ok:boolean;
    n,s,i,j,k,l,x,y,p:longint;
begin
     assign(f,'loto.in');
     assign(g,'loto.out');
     reset(f);
     rewrite(g);
     read(f,n,s);
     for i:=1 to n do
         read(f,a[i]);
     for i:=1 to n 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;
     ok:=true;
     while(i<n) and(ok) do
     begin
          inc(i);
          p:=a[i];
          j:=i-1;
          while(j<n)and(ok)and(p<s+1) do
          begin
               p:=p+a[j];
               k:=j-1;
               while(l<n)and(ok)and(p<s+1) do
               begin
                    inc(l);
                    p:=p+a[l];
                    x:=l-1;
                    while(x<n)and(ok)and(p<s+1)do
                    begin
                         inc(x);
                         p:=p+a[x];
                         y:=x-1;
                         while(y<n)and(ok)and(p<s+1)do
                         begin
                              if p+a[y]=s then begin
                                 ok:=false;
                                 write(g,a[i],' ',a[j],' ',a[k],' ',a[l],' ',a[x],' ',a[y]);
                         end;
                         p:=p-a[x];
                    end;
                    p:=p-a[l];
               end;
               p:=p-a[k];
          end;
          p:=p-a[j];
     end;
     end;
     if (ok) then write(g,-1);
     close(f);
     close(g);
end.