Cod sursa(job #275959)

Utilizator sory1806Sandu Sorina-Gabriela sory1806 Data 10 martie 2009 19:20:35
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
#define nmax 1001
#define wmax 5001
#define inf 32000
int a[nmax][wmax], n, w;
FILE *f, *g;

int min(int x, int y)
{	if(x<y)
		return x;
	else
		return y;
}

int main()
{       int i, j, en, c;
	f=fopen("energii.in", "r");
	g=fopen("energii.out", "w");
	fscanf(f, "%d%d", &n, &w);
	for(i=1; i<=w; i++)
		a[0][i]=inf;
	for(i=1; i<=n; i++)
	{       fscanf(f, "%d%d", &en, &c);
		for(j=1; j<=w; j++)
			if(j<=en)
				a[i][j]=min(c, a[i-1][j]);
			else
				a[i][j]=min(a[i-1][j], (a[i-1][j-en]+c));
	}
	if(a[n][w]==inf)
		fprintf(g, "-1\n");
	else
		fprintf(g, "%d\n", a[n][w]);
	fclose(g);
	return 0;
}