Cod sursa(job #476989)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 12 august 2010 22:43:11
Problema Energii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
# include <cstdio>
# define  N  1001
using namespace std;
    int S,G,W,e[N],c[N],sol[N*1000],i,j,S2,sum,minim=1000000000,sum2;
    int main (){
		freopen ("energii.in","r",stdin);
		freopen ("energii.out","w",stdout);
		scanf ("%d%d",&G,&W);
		for (i=1;i<=G;++i){
			scanf ("%d%d",&e[i],&c[i]);
		    if (sol[e[i]]==0 || sol[e[i]]>e[i]) sol[e[i]]=c[i];
		}
		for (i=1;i<=G;++i)
			for (j=W*2;j>=1;--j)
				if (sol[j]){
					sum=j+e[i];
					sum2=sol[j]+c[i];
					if (sol[sum]==0 || sol[sum]>sum2) sol[sum]=sum2;
				}
		for (i=1000000;i>=W;--i)
			if (minim>sol[i] && sol[i]) minim=sol[i];
		if(minim==1000000000) minim=-1;
		printf ("%d\n",minim);
		return 0;
	}