Pagini recente » Istoria paginii runda/pgleague/clasament | Istoria paginii runda/pla/clasament | Istoria paginii runda/barbari/clasament | Istoria paginii runda/vcdfcazfa/clasament | Cod sursa (job #3153609)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
struct generator {
int energie;
int cost;
};
int dp[5005] = {0};
generator gen[1005];
int main() {
int G, W;
fin >> G >> W;
for (int i = 0; i < G; i++) {
fin >> gen[i].energie >> gen[i].cost;
}
for (int i = 0; i < G; i++) {
int EGi = gen[i].energie;
int CGi = gen[i].cost;
for (int j = EGi; j <= W; j++) {
if (dp[j - EGi] + CGi < dp[j] || dp[j] == 0) {
dp[j] = dp[j - EGi] + CGi;
}
}
}
if (dp[W] == 0) {
fout << -1 << endl;
} else {
fout << dp[W] << endl;
}
return 0;
}