Pagini recente » Cod sursa (job #1241894) | Cod sursa (job #2001781) | Cod sursa (job #2576465) | Cod sursa (job #494072) | Cod sursa (job #48418)
Cod sursa(job #48418)
#include <stdio.h>
int d[15001],
a[2][1001];
int i,j,g,w,min,sum;
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d %d", &g, &w);
// printf("%d\n",w);
for (i = 1; i<=g; ++i)
{
scanf("%d %d",&a[0][i], &a[1][i]);
sum+=a[0][i];
}
if (sum<w)
{
printf("-1\n");
return 0;
}
for (i = 1; i<=15000; ++i)
d[i]=-1;
d[0]=0;
for (i = 1; i<=g; ++i)
{
for (j = w; j>-1; --j)
{
if (d[j]!=-1 && (d[j+a[0][i]]> d[j]+a[1][i] || d[j+a[0][i]] == -1))
d[j+a[0][i]]=d[j]+a[1][i];
}
}
min=2000000000;
for (i = w; i<15000; ++i)
if (d[i]<min && d[i]!=-1) min=d[i];
printf("%d\n",min);
/* for (i = 0; i<=2*w; ++i)
printf("%d ",d[i]);
printf("\n");*/
return 0;
}