Cod sursa(job #694315)

Utilizator andreifirstCioara Andrei Ioan andreifirst Data 27 februarie 2012 19:50:00
Problema Ghiozdan Scor 54
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.91 kb
var p, v:array [0..75000] of longint;
    r:array[1..20000] of longint;
    max, i, j, n, m, x, t, k:longint;
    buf1, buf2:array [1.. 1 shl 17] of char;
    f, g:text;

begin
assign (f, 'ghiozdan.in'); settextbuf (f, buf1); reset (f);
assign (g, 'ghiozdan.out'); settextbuf (g, buf2); 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 0 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;
  end;

writeln (g, max, ' ', v[max]);
for i := 1 to t do writeln (g, r[i]);

close (f); close (g);
end.