Pagini recente » Cod sursa (job #232154) | Cod sursa (job #716420) | Cod sursa (job #1238563) | Cod sursa (job #2036541) | Cod sursa (job #368427)
Cod sursa(job #368427)
#include<stdio.h>
int b[33000],N,S,G,ifin=99999999,W,v[1011],l[1011],max;
int main()
{
freopen("energii.in","r",stdin);
//freopen("energii.out","w",stdout);
scanf("%d%d",&N,&S);
for(int i=1;i<=N;++i)
{
scanf("%d%d",&v[i],&l[i]);
}
for(int i=1;i<=15001;++i)
{
b[i]=9999999;
}
max=0;
for(int i=1;i<=N;++i)
{
for(int j=max;j>=0;--j)
{
if(b[j]!=9999999)
{
if(j+v[i]<S)
{
if(b[j+v[i]]>b[j]+l[i])
b[j+v[i]]=b[j]+l[i];
if(j+v[i]>max)
max=j+v[i];
}
else if(b[S]>b[j]+l[i])
b[S]=b[j]+l[i];
}
}
}
if(b[S]!=9999999)
printf("%d\n",b[S]);
else printf("-1");
return 0;
}