Cod sursa(job #316663)

Utilizator pedobearBacauanu Vlad pedobear Data 20 mai 2009 17:51:14
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <stdio.h>
#define INF 1010*1010

int d[15100];
int cmin = INF,G,W,i,j,ener,cost;

int min (int a,int b)
{
	if (a>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<=15099;i++) d[i]=INF;
	
	for (i=1;i<=G;i++){
		scanf ("%d %d",&ener,&cost);
		for (j = W; j>=0; j--)
			if ( d[j]!=INF ) d[j + ener] = min( d[j + ener], d[j] + cost);
	}
	
	for (i = W; i <= 15099; i++) if (cmin > d[i]) cmin = d[i];

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