Pagini recente » Rating Rafail Ionescu (rafailionescu) | Cod sursa (job #471196) | Monitorul de evaluare | Cod sursa (job #1497846) | Cod sursa (job #42656)
Cod sursa(job #42656)
const inf=maxlongint div 5;
var f,g:text;
a,b:array[1..1024] of longint;
sum:array[0..200000] of longint;
n,i,j,k,l,m,s,max,min:longint;
begin
assign(f,'energii.in');
assign(g,'energii.out');
reset(F);
rewrite(G);
readln(f,n);
readln(f,s);
max:=0;
for i:=1 to n do
begin
readln(f,a[i],b[i]);
if a[i]>max then max:=a[i];
end;
for i:=1 to s+max do sum[i]:=inf;sum[0]:=0;
for i:=1 to n do
for j:=s+a[i]-1 downto a[i] do
if (sum[j-a[i]]+b[i]<sum[j]) then
sum[j]:=sum[j-a[i]]+b[i];
min:=maxlongint;
for i:=s to s+max do
if sum[i]<min then min:=sum[i];
if min<inf then writeln(g,min)
else writeln(g,-1);
close(F);
close(G);
end.