Cod sursa(job #1199265)

Utilizator mihaitamoglanmihai moglan mihaitamoglan Data 18 iunie 2014 18:30:57
Problema Problema rucsacului Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.77 kb
type rucsac=record
vi,pi,ki,ni:integer;
end;
tablou=array [1..5009]of rucsac;
var t,a:tablou;
aux:rucsac;
i,j,k,m,n,v:integer;
f,g:text;
begin
assign(f,'rucsac.in');
assign(g,'rucsac.out');
reset(f);
rewrite(g);
read(f,n,v);
for i:=1 to n do
read(f,t[i].vi,t[i].pi);
for i:=1 to n do
for j:=1 to n-1 do
if t[j].pi<t[j+1].pi then begin
aux:=t[j];
t[j]:=t[j+1];
t[j+1]:=aux;
end;
t[1].ki:=t[1].pi;
t[1].ni:=t[1].vi;
i:=2;
while i<=n do
begin
j:=1;
t[i].ki:=t[i].pi;
t[i].ni:=t[i].vi;
while j<=i-1 do
begin
if (t[j].ni+t[i].vi<=v)and(t[j].ki+t[i].pi>t[i].ki) then begin
t[i].ni:=t[j].ni+t[i].vi;
t[i].ki:=t[j].ki+t[i].pi;
end;
j:=j+1;
end;
i:=i+1;
end;
m:=0;
for i:=1 to n do
if t[i].ki>m then m:=t[i].ki;
write(g,m);
close(f);
close(g);
end.