Pagini recente » Cod sursa (job #2453193) | Cod sursa (job #2896766) | Cod sursa (job #2071455) | Cod sursa (job #2124186) | Cod sursa (job #21298)
Cod sursa(job #21298)
Program ghiozdan;
var f,g:text;
x,s:array[1..20000]of longint;
y:array[1..75000]of integer;
m:array[1..75000] of set of byte;
n,nmin,i:integer;
gr,gmax,j,k:longint;
Function sumcrt(a:longint):longint;
var i:integer;
begin
sumcrt:=0;
for i:=1 to n do
if i in m[a] then
sumcrt:=sumcrt+x[i];
end;
begin
assign(f,'ghiozdan.in'); reset(f);
assign(g,'ghiozdan.out'); rewrite(g);
readln(f,n,gr);
for i:=1 to n do readln(f,x[i]);
for j:=1 to gr do
for k:=1 to n do
if (j-x[k]>=0) and not (k in m[j-x[k]]) then
if (y[i]=0) or (s[j-x[k]]+x[k]>s[j]) or (y[j-x[k]]+1<=y[j]) then
begin
y[j]:=y[j-x[k]]+1;
m[j]:=m[j-x[k]]+[k];
s[j]:=sumcrt(j);
end;
gmax:=0;
nmin:=0;
for i:=1 to n do
if i in m[gr] then
begin
nmin:=nmin+1;
gmax:=gmax+x[i];
x[nmin]:=x[i];
end;
writeln(g,gmax,' ',y[gr]);
for i:=1 to y[gr] do
writeln(g,x[i]);
close(f);
close(g);
end.