Pagini recente » Cod sursa (job #1503069) | Cod sursa (job #2987357) | Cod sursa (job #2633075) | Cod sursa (job #1394455) | Cod sursa (job #470390)
Cod sursa(job #470390)
#include<stdio.h>
int n,m,a[2000],b[2000],c[17000],min,i,j,s1,s2;
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d",&n);
scanf("%d",&m);
min=100000000;
for(i=1;i<=n;i++)
{
scanf("%d %d",&a[i],&b[i]);
s1+=a[i];
s2+=b[i];
}
if(s1<m)
printf("-1");
if(s1==m)
printf("%d",s2);
if(s1>m)
{
c[0]=1;
for(i=1;i<=n;i++)
for(j=m;j>=0;j--)
if(c[j])
{
if(c[j+a[i]])
{
if(c[j+a[i]]>c[j]+b[i])
{
c[j+a[i]]=c[j]+b[i];
if(j+a[i]>=m&&c[j+a[i]]<min)
min=c[j+a[i]];
}
}
else
{
c[j+a[i]]=c[j]+b[i];
if(j+a[i]>=m&&c[j+a[i]]<min)
min=c[j+a[i]];
}
}
printf("%d",min-1);
}
return 0;
}