Pagini recente » Cod sursa (job #1709182) | Cod sursa (job #3153036) | Cod sursa (job #3276851) | Cod sursa (job #3154408) | Cod sursa (job #3154394)
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
struct Generator {
int energie;
int cost;
};
int dp[1005][5005] = { 0 };
Generator generatoare[1005];
int main() {
int G, W;
fin >> G >> W;
for (int i = 0; i < G; i++) {
fin >> generatoare[i].energie >> generatoare[i].cost;
}
for (int i = 0; i < G; i++) {
for (int j = 0; j <= W; j++) {
int EGi = generatoare[i].energie;
int CGi = generatoare[i].cost;
if (j < EGi) {
dp[i + 1][j] = dp[i][j];
}
else {
dp[i + 1][j] = min(dp[i][j], dp[i + 1][j - EGi] + CGi);
}
}
}
if (dp[G][W] == 0) {
fout << -1 << endl;
}
else {
fout << dp[G][W] << endl;
}
return 0;
}