Pagini recente » Profil M@2Te4i | Profil M@2Te4i | Profil M@2Te4i | simulareoni2015cl9 | Cod sursa (job #2453485)
#include <fstream>
#define inf 2000000000
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int dp[1024][5010], G, w, e[1024], c[1024];
int minim(int a, int b) {
if(a < b)
return a;
return b;
}
int main() {
f >> G >> w;
for(int i = 1; i <= G; i++)
f >> e[i] >> c[i];
for(int i = 1; i <= G; i++)
for(int j = 1; j <= w; j++)
dp[i][j] = inf;
///dp[i][j] = costul minim pt a produce j energie cu primele i generatoare
dp[1][e[1]] = c[1];
for(int i = 2; i <= G; i++)
for(int j = 1; j <= w; j++) {
if(j >= e[i])
dp[i][j] = minim(dp[i-1][j], dp[i-1][j-e[i]]+c[i]);
else
dp[i][j] = minim(dp[i-1][j], c[i]);
}
if(dp[G][w] != inf)
g << dp[G][w];
else
g << -1;
}