Pagini recente » Cod sursa (job #1462514) | Cod sursa (job #2826939) | Cod sursa (job #2320914) | Cod sursa (job #2574464) | Cod sursa (job #136961)
Cod sursa(job #136961)
type trip=record
a,b,c,ss:longint;
end;
const nmax=101;
mmax=1030301;
var fi,fo:text;
su:array[1..mmax]of trip;
n,s,i,l,j,k:longint;
nr:array[1..nmax]of longint;
function part(st,dr:longint):longint;
var i,j,s:longint;
aux:trip;
begin
i:=st; j:=dr; s:=-1;
while i<j do
begin
if su[i].ss>su[j].ss then
begin
aux:=su[i];
su[i]:=su[j];
su[j]:=aux;
s:=-s;
end;
if s=1 then inc(i)
else dec(j);
end;
part:=i;
end;
procedure qsort(st,dr:longint);
var p:longint;
begin
if st<dr then
begin
p:=part(st,dr);
qsort(st,p-1);
qsort(p+1,dr);
end;
end;
function find(vl,poz:longint):longint;
var st,dr,mij:longint;
begin
if su[poz].ss>vl then
begin
st:=1;
dr:=poz-1;
end
else
begin
st:=poz;
dr:=l;
end;
while st<=dr do
begin
mij:=(st+dr) shr 1;
if su[mij].ss=vl then
begin
find:=mij;
exit;
end
else
if su[mij].ss>vl then dr:=mij-1
else st:=mij+1;
end;
find:=0;
end;
procedure solve;
var aux,i:longint;
begin
for i:=l downto 1 do
begin
aux:=find(s-su[i].ss,i);
if aux<>0 then
begin
write(fo,su[i].a,' ',su[i].b,' ',su[i].c,' ');
write(fo,su[aux].a,' ',su[aux].b,' ',su[aux].c);
exit;
end;
end;
write(fo,-1);
end;
begin
assign(fi,'loto.in'); reset(fi);
assign(fo,'loto.out'); rewrite(fo);
read(fi,n,s);
for i:=1 to n do
read(fi,nr[i]);
l:=0;
for i:=1 to n do
for j:=i to n do
for k:=j to n do
begin
inc(l);
su[l].ss:=nr[i]+nr[j]+nr[k];
su[l].a:=nr[i];
su[l].b:=nr[j];
su[l].c:=nr[k];
end;
qsort(1,l);
solve;
close(fi);
close(fo);
end.