Cod sursa(job #2699337)

Utilizator KlinashkaDiacicov Calin Marian Klinashka Data 24 ianuarie 2021 11:29:39
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>
using namespace std;

const int INF = (int) 1e9;

int main() {
	freopen("energii.in", "r", stdin);
	freopen("energii.out", "w", stdout);
	//dp[G+1][W+1] - costul minim pentru a genera o en. mai mare sau egala cu W folosind o submultime a primelor G elemente 
	int G, W;
	cin >> G >> W;
	int EG[G+1], CG[G+1], dp[G+1][W+1];
	for(int i=1;i<=G;i++)
		cin >> EG[i] >> CG[i];
	dp[0][0] = 0; 
	for(int i=1;i<=W;i++)
		dp[0][i] = INF;
	for(int i=1;i<=G;i++) {
		dp[i][0] = 0;
		for(int j=1;j<=W;j++) {
			dp[i][j] = dp[i-1][j];
			if(j>=EG[i])
				dp[i][j] = min(dp[i-1][j], dp[i-1][j-EG[i]]+CG[i]);
		}	
	}
	cout << dp[G][W] <<'\n';
	return 0;
}