Pagini recente » Cod sursa (job #1609235) | Cod sursa (job #1237389) | Cod sursa (job #2043344) | Cod sursa (job #1427864) | Cod sursa (job #694257)
Cod sursa(job #694257)
var p, v:array [1..75000] of longint;
r:array[1..20000] of longint;
max, i, j, n, m, x, t, k:longint;
f, g:text;
begin
assign (f, 'ghiozdan.in'); reset (f);
assign (g, 'ghiozdan.out'); rewrite (g);
read (f, n, m);
max:=0;
for i := 1 to m do v[i]:=maxlongint;
for i := 1 to n do
begin
readln (f, x);
for j := max downto 1 do
begin
if (v[j]<>maxlongint) and (j+x<=m) and (v[j]+1<v[j+x]) then
begin
v[j+x]:=v[j]+1;
p[j+x]:=j;
if j+x>=max then
begin
max:=j+x;
k:=max; t:=0;
while k <> 0 do
begin
inc (t);
r[t]:=k-p[k];
k:=p[k];
end;
end;
end;
end;
if (v[x]>1) then
begin
v[x]:=1;
p[x]:=0;
if x>=max then
begin
t:=1; r[1]:=x;
max:=x;
end;
end;
end;
writeln (g, max, ' ', t);
for i := 1 to t do writeln (g, r[i]);
close (f); close (g);
end.