Pagini recente » Istoria paginii runda/yabadabadoo/clasament | Cod sursa (job #2760127) | Cod sursa (job #2301118) | Cod sursa (job #2770475) | Cod sursa (job #1132715)
type troll=record
suma,x,y,z:longint;
end;
var a:array[1..101] of longint;
loto:array[1..5000001] of troll;
i,j,k,n,tt,g,s,left,right,pivot:longint;
procedure swap(var x,y:troll);
var aux:troll;
begin
aux:=x;
x:=y;
y:=aux;
end;
procedure qsort(left,right:longint);
var i,j,pivot:longint;
begin
i:=left; j:=right; pivot:=loto[(left+right) div 2].suma;
repeat
while loto[i].suma<pivot do inc(i);
while loto[j].suma>pivot do dec(j);
if i<=j then begin
swap(loto[i],loto[j]);
inc(i);
dec(j);
end;
until i>=j;
if i<right then qsort(i,right);
if left<j then qsort(left,j);
end;
begin
assign(input,'loto.in');
assign(output,'loto.out');
reset(input);
rewrite(output);
readln(n,s);
for i:=1 to n do
read(a[i]);
for i:=1 to n do
for j:=i to n do
for k:=j to n do
if a[i]+a[j]+a[k]<s then begin
inc(tt);
loto[tt].suma:=a[i]+a[j]+a[k];
loto[tt].x:=a[i];
loto[tt].y:=a[j];
loto[tt].z:=a[k];
end;
qsort(1,tt); left:=1; right:=tt;
while (loto[left].suma+loto[right].suma<>s) and (left<=right) do
if loto[left].suma+loto[right].suma>s then dec(right)
else inc(left);
if loto[left].suma+loto[right].suma=s then begin
write(loto[left].x,' ',loto[left].y,' ',loto[left].z,' ');
write(loto[right].x,' ',loto[right].y,' ',loto[right].z);
end
else writeln('-1');
close(input);
close(output);
{Totusi este trist in lume}
end.