Cod sursa(job #113200)
#include <stdio.h>
int suma [10010];
int main()
{
freopen ("energii.in","r",stdin);
freopen ("energii.out","w",stdout);
int n, ed;
scanf("%d %d",&n,&ed);
int e[1005],c[1005];
for (int i=1;i<=n;i++)
scanf("%d %d",&e[i],&c[i]);
int ulte=0;
for (int i=1;i<=n;i++)
{
for ( int j=ulte;j>=1;j--)
if ( suma[j]!=0 )
{
int energie=e[i]+j;
if ( energie>ed )
energie=ed;
if ( suma[energie]>c[i]+suma[j] || suma[energie]==0 )
{
suma[energie]=c[i]+suma[j];
if ( ulte<energie )
ulte=energie;
}
}
int energie = e[i];
if ( energie > ed )
energie=ed;
if ( suma[energie]>c[i] || suma[energie]==0)
{
suma[energie]=c[i];
if ( ulte<energie )
ulte=energie;
}
}
if ( suma[ed] == 0)
printf ("-1\n");
else
printf("%d\n",suma[ed]);
fclose(stdout);
return 0;
}