Cod sursa(job #423220)

Utilizator vladstoickvladstoick vladstoick Data 23 martie 2010 17:08:03
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<stdio.h>
const int M = 1<<14;
const int inf = 1<<30;
long n,w,e[1002],c[1002],i,j,min=1<<30,v[M];



int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);

	scanf("%ld%ld",&n,&w);
	for(i=1;i<=n;i++)
		scanf("%ld%ld",&e[i],&c[i]);
	for(i=1 ; i<M ; ++i)
		v[i] = inf;
	for(i=1;i<=n;i++)
	{
		for(j=w;j>=0;j--)
			if(v[j]!=inf && v[j]+c[i] < v[j+e[i]])
				v[j+e[i]]=v[j]+c[i];
	}
	for(i=w ; i<M ; ++i)
		if(v[i]<min)
			min=v[i];
	if(min==inf)
		printf("-1");
	else
		printf("%ld",min);
	return 0;
}