Cod sursa(job #1105710)

Utilizator TrifanTTrifan TrifanT Data 11 februarie 2014 23:51:43
Problema Problema rucsacului Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.66 kb
var n,i , j, Max: integer;
    a: array[0..10000, 0..5000] of longint;
    c, g: array[1..10000] of integer;

function Maxim(a, b: integer): integer;
begin
 if a>b then maxim:=a
        else maxim:=b;
end;


begin
 assign(input,'ruc.in');
 reset(input);
 assign(output,'ruc.out');
 rewrite(output);
 readln(n, max);

 for i:=1 to n do readln(g[i], c[i]);
 for i:=0 to max do a[0, i]:=0;
 for i:=0 to n do a[i, 0]:=0;

 for i:=1 to n do
  for j:=1 to max do
    if g[i]>j then a[i, j]:=a[i-1, j]
              else
               a[i, j]:=Maxim(a[i-1, j], a[i-1, j-g[i]]+c[i]);


  writeln(a[n, max]);



close(input);
close(output);
end.