Pagini recente » Cod sursa (job #1627538) | Cod sursa (job #2975260) | Cod sursa (job #3197610) | Cod sursa (job #608382) | Cod sursa (job #423209)
Cod sursa(job #423209)
#include<stdio.h>
const int M = 1<<14;
long n,w,e[1002],c[1002],i,j,min=1<<30,v[M];
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%ld%ld",&n,&w);
for(i=1;i<=n;i++)
scanf("%ld%ld",&e[i],&c[i]);
for(i=1;i<=n;i++)
{
for(j=w;j>=1;j--)
if(v[j] && (v[j]+c[i] < v[j+e[i]] || v[j+e[i]]==0))
v[j+e[i]]=v[j]+c[i];
if(c[i]<v[e[i]] || v[e[i]]==0)
v[e[i]]=c[i];
}
for(i=w ; i<M ; ++i)
if(v[i] && v[i]<min)
min=v[i];
if(min==1<<30)
printf("-1");
else
printf("%ld",min);
return 0;
}