Cod sursa(job #481880)

Utilizator lianaliana tucar liana Data 1 septembrie 2010 21:48:28
Problema Ghiozdan Scor 90
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.06 kb
program ghiozdan;
var f, g:text;
    rep, smax, val, poz, i, n, a, x, max:longint;
    nr, prov:array[0..75003] of longint;
    v:array[0..203] of longint;
  begin
    assign(f,'ghiozdan.in'); reset(f);
    assign(g,'ghiozdan.out'); rewrite(g);
    readln(f,n,smax);
    for i:=1 to n do
      begin
        read(f,a);
        v[a]:=v[a]+1;
      end;
    nr[0]:=1;
    for x:=200 downto 1 do
      if v[x]>0 then
        for val:=smax-x downto 0 do
          for rep:=1 to v[x] do
            begin
              if (nr[val]>0) and (val+x*rep<=smax)  and (nr[val+x*rep]=0)then
                begin
                  nr[val+x*rep]:=nr[val]+rep;
                  if max<val+x*rep then
                    max:=val+x*rep;
                  prov[val+x*rep]:=x;
                end;
              if val+x*rep>smax then
                break;
            end;
    writeln(g,max,' ',nr[max]-1);
    poz:=max;
    while prov[poz]>0 do
      begin
        writeln(g,prov[poz]);
        poz:=poz-prov[poz];
      end;
    close(f);
    close(g);
  end.