Pagini recente » Cod sursa (job #1505987) | Cod sursa (job #1457333) | Cod sursa (job #2368190) | Cod sursa (job #3260233) | Cod sursa (job #48403)
Cod sursa(job #48403)
#include <stdio.h>
int d[15001],
a[2][1001];
int i,j,g,w,min;
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]);
for (i = 1; i<=15000; ++i)
d[i]=-1;
d[0]=0;
for (i = 1; i<=w; ++i)
{
for (j = w; j>-1; --j)
{
if (d[j]!=-1 && a[0][i]+j<2*w && (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];
if (min==2000000000)
printf("-1\n");
else
printf("%d\n",min);
/* for (i = 0; i<=2*w; ++i)
printf("%d ",d[i]);
printf("\n");*/
return 0;
}