Pagini recente » Cod sursa (job #2232118) | Cod sursa (job #1664366) | Cod sursa (job #758042) | Cod sursa (job #1499538) | Cod sursa (job #48087)
Cod sursa(job #48087)
#include<stdio.h>
long g,n,i,j,kn[10002],x[1002],cost[5002],sum,u[10002];
int main()
{
freopen ("energii.in","rt",stdin);
freopen ("energii.out","wt",stdout);
scanf("%ld %ld",&n,&g);
for (i=1;i<=10000;i++)
kn[i]=32000;
for (i=1;i<=n;i++)
scanf("%ld %ld",&x[i],&cost[i]);
for (i=1;i<=n;i++)
{
i=i;
for (j=1;j<=g;j++)
{
if (kn[j]!=32000)
if (u[j]!=1 || kn[j]!=cost[i])
{
if (kn[j+x[i]]>kn[j]+cost[i])
kn[j+x[i]]=kn[j]+cost[i],u[j+x[i]]=u[j]+1;
}
}
if (kn[x[i]]>cost[i])
kn[x[i]]=cost[i];
}
for (i=g;g<=9999;g++)
if (kn[g]!=32000)
break;
if (kn[g]==32000)
printf("-1\n");
else
printf("%ld\n",kn[g]);
return 0;
}