Cod sursa(job #713649)

Utilizator lehman97Dimulescu David lehman97 Data 14 martie 2012 20:17:23
Problema Problema rucsacului Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.78 kb
type vec=record
g:longint;
c:longint;
end;
var sum:array[1..5000]of longint;
    v:array[1..5000]of vec;
    use:array[1..5000,1..10000]of boolean;
    n,g,i,max,j:longint;

procedure solve;
var i,j:longint;
begin
for i:=1 to n do
for j:=max downto 1 do
  if (sum[j]<>0)and(v[i].c+sum[j]>sum[v[i].g+j])and(not use[v[i].g,j]) then
    begin
    use[i,j]:=true;
    sum[v[i].g+j]:=v[i].c+sum[j];
    if v[i].g+j>max then max:=v[i].g+j;
    if max>g then max:=g;
    end;

end;
begin
assign(input,'rucsac.in');reset(input);
assign(output,'rucsac.out');rewrite(output);
read(n,g);
max:=0;
for i:=1 to n do
begin
read(v[i].g,v[i].c);
sum[v[i].g]:=v[i].c;
use[v[i].g,v[i].g]:=true;
if v[i].g>max then max:=v[i].g;
end;
solve;
writeln(sum[g]);
close(output);
end.