Pagini recente » Cod sursa (job #3243891) | Cod sursa (job #3240045) | Cod sursa (job #2368068) | Cod sursa (job #175321) | Cod sursa (job #3154396)
#include <iostream>
#include <fstream>
#include <vector>
#include <climits>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
struct Generator {
int energie;
int cost;
};
int main() {
int G, W;
fin >> G >> W;
vector<Generator> generatoare(G);
for (int i = 0; i < G; i++) {
fin >> generatoare[i].energie >> generatoare[i].cost;
}
vector<int> dp(W + 1, INT_MAX);
dp[0] = 0;
for (int i = 0; i < G; i++) {
for (int j = generatoare[i].energie; j <= W; j++) {
dp[j] = min(dp[j], dp[j - generatoare[i].energie] + generatoare[i].cost);
}
}
if (dp[W] == INT_MAX) {
fout << -1 << endl;
}
else {
fout << dp[W] << endl;
}
return 0;
}