Cod sursa(job #222354)

Utilizator cotofanaCotofana Cristian cotofana Data 21 noiembrie 2008 22:48:25
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>
#define INF 50000000
#define N 15005

int g, w, cost[1005], energ[1005], e[N];

int main()
{
	int i, j, min;
	freopen("energii.in", "r", stdin);
	freopen("energii.out", "w", stdout);
	scanf("%d\n%d\n", &g, &w);
	for (i=1; i<=g; i++) scanf("%d %d\n", &energ[i], &cost[i]);
	for (i=1; i<N; i++) e[i]=INF;
	for (i=1; i<=g; i++)
	{
		for (j=w-1; j>=1; j--)
			if (e[j]!=INF && e[j]+cost[i]<e[j+energ[i]])
				e[j+energ[i]]=e[j]+cost[i];
		if (cost[i]<e[energ[i]])
			e[energ[i]]=cost[i];
	}
	min=INF;
	for (i=w; i<N; i++)
		if (e[i]<min)
			min=e[i];
	printf("%d\n", min);
	return 0;
}