Cod sursa(job #824445)

Utilizator dragangabrielDragan Andrei Gabriel dragangabriel Data 26 noiembrie 2012 16:59:11
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<cstdio>
#include<algorithm>
#define maxim 2000000000
using namespace std;
int n,i,j,k,wmax,w[10005],e[10005],rez,x,y;
int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	scanf("%d %d",&n,&wmax);
	rez=maxim;w[0]=1;
	for (i=1;i<=n;i++)
	{
		scanf("%d %d",&x,&y);
		for (j=wmax+x+1;j>=0;j--) if (w[j]==1) 
			{
				w[j+x]=1;
				if (e[j+x]==0) e[j+x]=e[j]+y;else e[j+x]=min(e[j+x],e[j]+y);
				if (j+x>=wmax) rez=min(rez,e[j+x]);
		}
	}
	if (rez!=maxim) printf("%d\n",rez);else printf("-1\n");
	return 0;
}