Cod sursa(job #1542649)

Utilizator trinc2014Trinc Adrian trinc2014 Data 5 decembrie 2015 15:49:49
Problema Energii Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.92 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
    for j:=1 to w do
      begin
        ci_1:=ci;
        if eg[i]<=j then
          begin
            v1:=ci_1[j];
            v2:=ci_1[j-eg[i]]+cg[i];
            if v1>v2 then ci[j]:=ci_1[j-eg[i]]+cg[i]
                     {else ci[j]:=ci_1[j];}
          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 writeln(g,ci[w])
                   else writeln(g,-1);
  close(f);
  close(g);
end.