Pagini recente » Cod sursa (job #2122547) | Cod sursa (job #2872635) | Cod sursa (job #2717322) | Cod sursa (job #3287173) | Cod sursa (job #590336)
Cod sursa(job #590336)
#include <cstdio>
#define MIN(a,b)((a)<(b) ? (a):(b))
int w,i,j,gen,tot,x[1001],y[1001],a[1001][5001];
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d",&gen);
scanf("%d",&w);
for(i=1;i<=gen;i++) scanf("%d %d",&x[i],&y[i]);
for(i=1;i<=gen;i++) tot+=x[i];
if(tot<w)
{
printf("-1");
return 0;
}
for(i=1;i<=w;i++)
a[0][i]=1000000;
for(i=1;i<=gen;i++)
{
for(j=1;j<=w;j++)
{
if(x[i]>j)
a[i][j]=MIN(a[i-1][j], y[i]);
else
a[i][j]=MIN(a[i-1][j],a[i-1][j-x[i]]+y[i]);
}
}
printf("%d",a[gen][w]);
return 0;
}