Pagini recente » Cod sursa (job #951602) | Cod sursa (job #1196922) | Cod sursa (job #2411372) | Cod sursa (job #1829185) | Cod sursa (job #133118)
Cod sursa(job #133118)
var fi,fo:text;
n,s,i,j,k,l,m,su:longint;
a:array[1..100]of longint;
function part(st,dr:integer):integer;
var i,j,aux,s:longint;
begin
i:=st; j:=dr; s:=-1;
while i<j do
begin
if a[i]<a[j] then
begin
aux:=a[i];
a[i]:=a[j];
a[j]:=aux;
s:=-s;
end;
if s=1 then inc(i)
else dec(j);
end;
part:=i;
end;
procedure qsort(st,dr:integer);
var p:integer;
begin
if st<dr then
begin
p:=part(st,dr);
qsort(st,p-1);
qsort(p+1,dr);
end;
end;
function find(st,dr,vl:integer):integer;
var mij:integer;
begin
find:=-1;
while st<=dr do
begin
mij:=(st+dr) shr 1;
if a[mij]=vl then
begin
find:=mij;
exit;
end
else
if a[mij]>vl then st:=mij+1
else dr:=mij-1;
end;
end;
procedure solve;
var aux:integer;
begin
su:=0;
for i:=1 to n do
begin
su:=su+a[i];
for j:=1 to n do
begin
su:=su+a[j];
for k:=1 to n do
begin
su:=su+a[k];
for l:=1 to n do
begin
su:=su+a[l];
for m:=1 to n do
begin
su:=su+a[m];
aux:=find(1,n,s-su);
if aux<>-1 then
begin
write(fo,a[i],' ',a[j],' ',a[k],' ',a[l],' ',a[m],' ',a[aux]);
exit;
end;
su:=su-a[m];
end;
su:=su-a[l];
end;
su:=su-a[k];
end;
su:=su-a[j];
end;
su:=su-a[i];
end;
writeln(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,a[i]);
qsort(1,n);
solve;
close(fi);
close(fo);
end.