Pagini recente » Cod sursa (job #1456835) | Cod sursa (job #663805) | Cod sursa (job #2265677) | Cod sursa (job #349282) | Cod sursa (job #46920)
Cod sursa(job #46920)
#include<stdio.h>
int g,n,i,j,kn[5002],x[1002],cost[1002],tata[5001],sum;
int main()
{
freopen ("energii.in","rt",stdin);
freopen ("energii.out","wt",stdout);
scanf("%d %d",&n,&g);
for (i=1;i<=g;i++)
kn[i]=32000;
for (i=1;i<=n;i++)
scanf("%d %d",&x[i],&cost[i]),kn[x[i]]=1,tata[x[i]]=i;
for (i=1;i<=n;i++)
{
for (j=1;j<=g;j++)
{
if (kn[j]!=0)
{
if (kn[j+x[i]]>kn[j]+1)
kn[j+x[i]]=kn[j]+1,tata[j+x[j]]=i;
}
}
}
while (g)
{
sum+=cost[tata[g]];
g-=x[tata[g]];
}
printf("%ld\n",sum);
return 0;
}