Cod sursa(job #423223)
const M=(1 shl 14);
var i,j,gen,min,w:longint;
e,c:array[1..10000] of longint;
v:array [0..M] of longint;
f,g:text;
begin
assign(f,'energii.in');
assign(g,'energii.out');
reset(f);
rewrite(g);
readln(f,gen);
readln(f,w);
for i:=1 to gen do
readln(f,e[i],c[i]);
for i:=1 to M do v[i]:=maxlongint;
for i:=1 to gen do
begin
for j:=w downto 0 do
if (v[j]<>maxlongint) and (v[j]+c[i]<v[j+e[i]]) then
v[j+e[i]]:=v[j]+c[i];
end;
min:=maxlongint;
for i:=w to M do
if (v[i]<min) then
min:=v[i];
if min=maxlongint then writeln(g,-1)
else writeln(g,min);
close(g);
end.