Cod sursa(job #1199248)

Utilizator mihaitamoglanmihai moglan mihaitamoglan Data 18 iunie 2014 17:51:17
Problema Problema rucsacului Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1.08 kb
{problema rucsac discreta}
type rucsac=record
            vi,pi,ki,ni:integer;
            end;
tablou=array [1..10]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;
    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.