Pagini recente » Cod sursa (job #1001239) | Cod sursa (job #2496593) | Cod sursa (job #407726) | Cod sursa (job #1713898) | Cod sursa (job #116073)
Cod sursa(job #116073)
#include <stdio.h>
long i,j,n,s,min;
long a[1002][2],b[1002][2];
long g[1002][2];
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%ld",&n);
scanf("%ld",&s);
min=10011001;
for (i=1; i<=n; i++)
scanf("%ld%ld",&g[i][0],&g[i][1]);
for (i=1; i<=1001; i++)
a[i][1]=10011001;
a[0][0]=1;
for (i=1; i<=n; i++)
{
for (j=1; j<=s; j++)
{
a[j][0]=b[j][0];
if (b[j][1]!=0) a[j][1]=b[j][1];
}
for (j=0; j<=s; j++)
if (a[j][0]!=0)
{
if (j+g[i][0]>=s && a[j][1]+g[i][1]<min) min=a[j][1]+g[i][1];
if (j+g[i][0]<s && a[j][1]+g[i][1]<a[j+g[i][0]][1])
{
b[j+g[i][0]][1]=a[j][1]+g[i][1];
b[j+g[i][0]][0]=1;
}
}
}
if (min!=10011001) printf("%ld\n",min);
else printf("-1\n");
return 0;
}