Cod sursa(job #2183157)

Utilizator _Victor_Victor Ciobanu _Victor_ Data 22 martie 2018 21:09:22
Problema Energii Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.82 kb
Program Energii;
type nmax=0..100000;
gener = record
 e,c:nmax;
 end;
vect = array[nmax] of gener;
var a:vect;
b:array[nmax] of longint;
i,j,n:nmax;
w:longint;
f,g:text;
function min(a,b:longint):longint;
begin
if a = 0 then begin
 min:=b;
 exit;
 end;
 if a>b then
  min:=b
  else min:=a;
end;
begin
assign(f,'energii.in');
assign(g,'energii.out');
reset(f);
rewrite(g);
readln(f,n,w);
for i:=1 to n do begin
   readln(f,a[i].e,a[i].c);
   b[i]:=0;
  end;
for i:=1 to n do begin
  for j:=w downto a[i].e do begin
    if b[j-a[i].e] <> 0 then b[j]:=min(b[j],b[j-a[i].e]+a[i].c)
   else if j-a[i].e = 0  then  b[j]:=min(b[j],a[i].c);
   end;
   for j:=1 to w do
    //write(g,b[j],' ');
  writeln(g);
  end;
writeln(g);
if b[w]=0 then write(g,'-1')
else write(g,b[w]);
close(f);
close(g);
end.