Cod sursa(job #316661)

Utilizator pedobearBacauanu Vlad pedobear Data 20 mai 2009 17:37:47
Problema Energii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>

int d[15010],cost[1005],ener[1005];
int cmin = 99999999,G,W,i,j;

int min (int a,int b)
{
	if (a>b && b) return b;
	return a;
}

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",&ener[i],&cost[i]);
	}
	
	for (i=1;i<=G;i++){
		for (j=W;j>=1;j--)
			if ( d[j] ) d[j+ener[i]] = min(d[j]+cost[i],d[j+ener[i]]);
		d[ener[i]] = min(cost[i],d[ener[i]]);
	}
		
	for (i=W;i<=W+10000;i++) if (d[i] && d[i]<cmin) cmin = d[i];

	if (cmin==99999999) printf ("-1");
	else printf ("%d",cmin);
	
	return 0;
}