Pagini recente » Cod sursa (job #908924) | Cod sursa (job #2405524) | Cod sursa (job #1628694) | Cod sursa (job #1943371) | Cod sursa (job #714515)
Cod sursa(job #714515)
#include<cstdio>
#define oo 1<<30
#define MAX 5100
#define MAX2 1005
#define min(a,b) ((a)<(b)?(a):(b))
int best[2*MAX],power[MAX2],cost[MAX2];
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int G,W,S=0,i,j,sol;
scanf("%d %d",&G,&W);
for(int i=1;i<=G;i++)
{
scanf("%d %d",&power[i],&cost[i]);
S=S+power[i];
}
best[0]=1;
for(i=1;i<=G;i++)
for(j=MAX;j>=0;j--)
if(best[j])
if((!best[j+power[i]])||(best[j+power[i]]>best[j]+cost[i]))
best[j+power[i]]=best[j]+cost[i];
for(i=W,sol=oo;i<=2*MAX;i++)
if((best[i]<sol)&&best[i])
sol=best[i];
if(sol==oo)
printf("-1\n");
else
printf("%d",sol-1);
return 0;
}