Cod sursa(job #476980)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 12 august 2010 22:21:36
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
# include <cstdio>
# 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]]>e[i]) sol[e[i]]=c[i];
			if (S<e[i]) S=e[i];
		}
		if (S>W) S=W;
		for (i=1;i<=G;++i)
			for (  /*S=(S>S2?S:S2)  ,j=1,S2=0*/j=1;j<=W;++j)
				if (sol[S]){
					sum=S+e[i];
					sum2=sol[j]+c[i];
					if (sol[sum]==0 || sol[sum]>sum2) sol[sum]=sum2;
			        if (S2<sol[sum]) S2=sol[sum];
				}
		for (i=S;i>=W;--i)
			if (minim>sol[i] && sol[i]) minim=sol[i];
		printf ("%d\n",minim);
		return 0;
	}