Cod sursa(job #714919)

Utilizator vladvaldezVlad Dimulescu vladvaldez Data 16 martie 2012 12:32:33
Problema Problema rucsacului Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.74 kb
type rucsac=record
x,y:integer;
end;

var  v:array[1..10000]of rucsac;
     use:array[0..10000,0..10000]of integer;
     s:array[0..10000]of integer;
     n,i,max,g:integer;


procedure rez;
var i,j,k:longint;
begin
for i:=1 to g do s[i]:=-1;
for i:=1 to g do
 for j:=1 to n do
  if (v[j].x<=i) and (s[i-v[j].x]<>-1)and (use[i-v[j].x,j]=0)  then
  if s[i]<s[i-v[j].x]+v[j].y then begin
   s[i]:=s[i-v[j].x]+v[j].y;
   for k:=1 to n do use[i,k]:=use[i-v[j].x,k];
   use[i,j]:=1;
  end;
end;

begin
assign(input,'rucsac.in');reset(input);
assign(output,'rucsac.out');rewrite(output);
read(n,g);
for i:=1 to n do
read(v[i].x,v[i].y);
rez;
for i:=g downto 1 do
if s[i]<>-1 then begin write(s[i]);break;end;
close(output);
end.