Cod sursa(job #1542661)

Utilizator trinc2014Trinc Adrian trinc2014 Data 5 decembrie 2015 16:01:35
Problema Energii Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.89 kb
program energii;
var ci,ci_1:array [0..5002] of longint;
eg,cg:array [1..1002] of integer;
nrg,w,i,j:integer;
infinit,v1,v2:longint;
f,g:text;
begin
  assign(f,'energii.in');
  reset(f);
  assign(g,'energii.out');
  rewrite(g);
  readln(f,nrg);
  readln(f,w);
  for i:=1 to nrg do
    readln(f,eg[i],cg[i]);
  infinit:=maxlongint div 2;
  ci[0]:=0;
  for j:=1 to w do
    ci[j]:=infinit;
  for i:=1 to nrg do
    begin
      ci_1:=ci;
      for j:=1 to w do
        if eg[i]<=j then
          begin
            v1:=ci_1[j];
            v2:=ci_1[j-eg[i]]+cg[i];
            if v1>v2 then ci[j]:=v2
                     else ci[j]:=v1;
          end
         else
          if ci_1[j]>cg[i] then ci[j]:=cg[i]
                           else ci[j]:=ci_1[j];
    end;
  if ci[w]<infinit then write (g,ci[w])
                   else write (g,-1);
  close(f);
  close(g);
end.