Pagini recente » Cod sursa (job #1877427) | Cod sursa (job #1607537) | Cod sursa (job #1098252) | Cod sursa (job #678957) | Cod sursa (job #150170)
Cod sursa(job #150170)
type stiva=array[1..6] of byte;
var st:stiva;
v:array[1..100] of longint;
as,ev:boolean;
suma,s:longint;
n,i,k:byte;
f,g:text;
ok:boolean;
procedure succesor(var st:stiva;k:integer;var as:boolean);
begin
if (st[k]<n) then begin
as:=true;
inc(st[k]);
end
else as:=false;
end;
procedure valid(var st:stiva;k:integer;var ev:boolean);
begin
ev:=true;
suma:=0;
if k>1 then for i:=1 to k do suma:=suma+v[st[i]];
if suma>s then ev:=false;
end;
function solutie(k:integer):boolean;
begin
solutie:=(k=6) and (suma=s);
end;
procedure tipar;
begin
for i:=1 to k do write(g,v[st[i]],' ');
end;
begin
assign(f,'loto.in');reset(f);
assign(g,'loto.out');rewrite(g);
readln(f,n,s);
i:=0;
for i:=1 to n do read(f,v[i]);
k:=1;
st[k]:=0;
ok:=false;
while (k>0) and (ok=false) do begin
repeat
succesor(st,k,as);
if as then valid(st,k,ev);
until (as and ev) or not as;
if as then begin if solutie(k) then begin
tipar;
ok:=true;
end
else if k<6 then begin
inc(k);
st[k]:=0;
end
end
else dec(k);
end;
if ok=false then writeln(g,-1);
close(f);
close(g);
end.