Cod sursa(job #477109)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 13 august 2010 15:03:53
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
# include <cstdio>
# include <algorithm>
# define  N  1001
using namespace std;
    int S,G,W,e[N],c[N],sol[N*20],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]]>c[i]) sol[e[i]]=c[i];
		}
		for (i=1;i<=G;++i)
			for (j=W;j>=1;--j)
				if (sol[j]){
					sum=j+e[i];
					sum2=sol[j]+c[i];
					if (sum>W){
						sol[W]=min (sol[W],sum2);
					}
					else{
						sol[sum]=min (sol[sum],sum2);
					}
				}
		if (sol[W]==0) printf ("-1\n");
		else
		printf ("%d\n",sol[W]);
		return 0;
	}