Cod sursa(job #652210)

Utilizator mihaibogdan10Mihai Bogdan mihaibogdan10 Data 23 decembrie 2011 13:58:17
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<cstdio>
#define inf 0xfffffff
using namespace std;

int eg[1001], cg[1001], dp[10001];
//dp[i] = costul minim cu care pot genera i unitati de energie

int main(){
	freopen("energii.in", "r", stdin), freopen("energii.out", "w", stdout);
	int G, W, i, j;
	scanf ("%d %d", &G, &W);
	
	for (i = 1; i <= G; i++)	scanf ("%d %d", &eg[i], &cg[i]);
	
	for (i = 1; i < 10001; i++)  dp[i] = inf;
	for (i = 1; i < 10001; i++){
		for (j = 1; j <= G; j++)
			if (dp[i - eg[j]] != inf && dp[i - eg[j]] + cg[j] < dp[i]) dp[i] = dp[i - eg[j]] + cg[j];
	}
	
	for (i = W; i < 10001; i++) 
		if (dp[i] != inf)	{printf("%d", dp[i]); return 0;}
	return 0;
}