Cod sursa(job #1676465)

Utilizator laura.calimanLaura Caliman laura.caliman Data 5 aprilie 2016 22:19:34
Problema Ghiozdan Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 1 kb
var n,g,i,j,k,max:longint;
    a,optim,b:array[0..75000] of longint;
    m:array[1..75000,1..100] of longint;
    
begin
  assign(input,'ghiozdan.in');
  assign(output,'ghiozdan.out');
  reset(input);
  rewrite(output);
  read(n,g);
  for i:=1 to n do read(a[i]);
  max:=0;
  optim[0]:=0;
  for i:=1 to n do 
    for j:=g downto a[i] do begin
      if (optim[j-a[i]]+a[i]=optim[j]) and (b[j-a[i]]+1<b[j]) then begin
        b[j]:=b[j-a[i]]+1;
//        m[j,b[j]]:=a[i];
      end;
      if (optim[j-a[i]]+a[i]>optim[j]) then begin
        optim[j]:=optim[j-a[i]]+a[i];
        b[j]:=b[j-a[i]]+1;
//        for k:=1 to b[j] do
//          m[j,k]:=m[j-a[i],k];
//        inc(b[j]);
//        m[j,b[j]]:=a[i];
      end;
      if optim[max]<optim[j] then max:=j;
    end;
//  for i:=1 to g do begin
//    for j:=1 to b[i] do write(m[i,j],' ');
//    writeln;
//  end;
//  for i:=1 to max do write(optim[i],' ');
  writeln(optim[max],' ',b[max]);
//  for i:=1 to b[max] do writeln(m[max,i])
end.