Cod sursa(job #1199567)

Utilizator cojocarugabiReality cojocarugabi Data 19 iunie 2014 17:25:14
Problema Problema rucsacului Scor 80
Compilator fpc Status done
Runda Arhiva educationala Marime 0.94 kb
var  m:array[0..1,0..10000]    of longint;
   x,y:array[1..5000]          of longint;
   i,j:                           longint;
   k,l:                           longint;
 fi,fo:                              text;
a,b,au:                           longint;
     function max(x,y:longint):longint;
      begin
       if x>=y then max:=x else max:=y;
      end;
      begin
       assign(fi,'rucsac.in');
       reset(fi);
       assign(fo,'rucsac.out');
       rewrite(fo);
       readln(fi,k,l);
       a:=0;b:=1;
       for i:=1 to k do
            readln(fi,x[i],y[i]);
       for i:=1 to l do m[a,i]:=0;
       for i:=1 to k do  begin
         for j:=1 to l do
           if (j-x[i])>=0 then
              m[b,j]:=max(m[a,j],m[a,j-x[i]]+y[i])
            else
            m[b,j]:=m[a,j];
        au:=a;
        a:=b;
        b:=au;
       end;
       close(fi);
       writeln(fo,m[0,l]);
       close(fo);
      end.