Pagini recente » Cod sursa (job #994357) | Cod sursa (job #1340104) | Cod sursa (job #2781347) | Cod sursa (job #2910801) | Cod sursa (job #1592763)
#include <stdio.h>
#include <stdlib.h>
int min(int a,int b)
{
if(a<b)
return a;
return b;
}
int s[10001],e[10001],g[10001];
int main()
{
int n,w,i,j,minim;
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d%d",&n,&w);
for(i=1; i<=n; i++)
scanf("%d%d",&e[i],&g[i]);
for(i=1; i<=10000; i++)
s[i]=-1;
for(i=1; i<=n; i++)
for(j=10000-e[i]; j>=0; j--)
{
if(s[j]>=0)
if(s[j+e[i]]==-1)
s[j+e[i]]=s[j]+g[i];
else
s[j+e[i]]=min(s[j+e[i]],s[j]+g[i]);
}
minim=100000000;
for(i=w; i<=10000; i++)
if(s[i]!=-1 && s[i]<minim)
minim=s[i];
if(minim==100000000)
minim=-1;
printf("%d\n",minim);
return 0;
}