Pagini recente » Cod sursa (job #1753634) | Cod sursa (job #2252455) | Cod sursa (job #831032) | Cod sursa (job #440638) | Cod sursa (job #305539)
Cod sursa(job #305539)
#include <stdio.h>
long power[22000],cost[22000],c[22000],pos[22000],i,n,w,sol,j,max;
int main()
{freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%ld%ld",&n,&w);pos[0]=1;
for(i=1;i<=n;i++)
{scanf("%ld%ld",&power[i],&c[i]);if(power[i]>max)max=power[i];
for(j=w+power[i];j>=0;j--)
if(pos[j])
if(pos[j+power[i]]==0){pos[j+power[i]]=1;cost[j+power[i]]=cost[j]+c[i];}
else
if(cost[j]+c[i]<cost[j+power[i]])cost[j+power[i]]=cost[j]+c[i];
}
sol=1000000004;
for(i=w+max;i>=w;i--)
if(pos[i]&&cost[i]<sol)sol=cost[i];
if(sol==1000000004)printf("-1");else printf("%ld",sol);
fclose(stdin);fclose(stdout);
return 0;
}