Cod sursa(job #848241)

Utilizator elfusFlorin Chirica elfus Data 5 ianuarie 2013 01:46:11
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>

int E[1024], C[1024], dp[20000];

int main()
{
	int i, j, G, W;
	
	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]);
	
	for (i = 1; i <= W + 10100; i ++)
		dp[i] = 1 << 30;
	
	for (i = 1; i <= G; i ++)
		for (j = W; j >= 0; j --)
			if (dp[j + E[i]] > dp[j] + C[i])
				dp[j + E[i]] = dp[j] + C[i];
	
	int sol = 1 << 30;
	
	for (i = W; i <= W + 10100; i ++)
		if (dp[i] < sol)
			sol = dp[i];
	
	if (sol == 1 << 30)
		printf("-1");
	else
		printf("%d", sol);
	return 0;
}