Cod sursa(job #123519)

Utilizator gicagica popescu gica Data 16 ianuarie 2008 12:30:39
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <stdio.h>


int n,m,a[20000],b[20000],v[20000],min;

int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	scanf("%d",&n);
	scanf("%d",&m);
	int i,j;
	for (i=1; i<=n; ++i) scanf("%d %d",&a[i],&b[i]);
	for (i=1; i<=19000; ++i) v[i]=2000000000;
	for (i=1; i<=n; ++i)
	{
		for (j=m; j>=0; --j)
		{
			if (v[j]<2000000000)
			{
				if (v[j]+b[i]<v[j+a[i]]) v[j+a[i]]=v[j]+b[i];
			}
		}
	}
	min=v[m];
	for (i=m+1; i<=19000; ++i) if (v[i]<min) min=v[i];
	if (min==2000000000) min=-1;
	printf("%d",min);
	return 0;
}