Cod sursa(job #1884411)

Utilizator MogekoValeria Izvoreanu Mogeko Data 18 februarie 2017 18:48:46
Problema Problema rucsacului Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1.13 kb
Program P1;
uses math;
      type val=record
                   w,p:word;
                  end;

      var a:array[1..5100] of val;
          m:array[1..5000,1..10000] of word;
          n,g,j,i,rs:word;
          fi,fo:text;
begin
     { assign(fi,'rucasc.in');
      reset(fi);
      assign(fo,'rucsac.out');
      rewrite(fo);}
      readln(n,g);
      //readln(fi);
      For i:=1 to n do begin
                     readln(a[i].w,a[i].p);
                     //readln(fi);
                     end;
      for j:= 0 to g do
     m[1, j] := 0;

 for i := 1 to n do
     for j := 0 to g do
         if a[i].w > j then
             m[i, j] := m[i-1, j]         else
            m[i, j] := max(m[i-1, j], m[i-1, j-a[i].w] + a[i].p) ;
      {For i:=1 to g do
      m[i]:=0;
      rs:=0;
      For i:=1 to n do
                    For j:=g-a[i].w downto 1 do

                    If m[j+a[i].w]<(m[j]+a[i].p) then begin
                     m[j+a[i].w]:=m[j]+a[i].p;

                     If m[j+a[i].w]>rs then rs:=m[j+a[i].w];
                      end;}
      writeln(m[n,g]);
      //close(fo);
      readln;
end.