Pagini recente » Cod sursa (job #3240238) | Cod sursa (job #2354401) | Cod sursa (job #2319196) | Cod sursa (job #902807) | Cod sursa (job #3154413)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int MAX_G = 1005;
const int MAX_W = 5005;
const int INF = 1e9;
struct Generator {
int energie;
int cost;
};
Generator gen[MAX_G];
int dp[MAX_W];
int main() {
int G, W;
fin >> G >> W;
for (int i = 0; i < G; i++) {
fin >> gen[i].energie >> gen[i].cost;
}
fill(dp, dp + W + 1, INF);
dp[0] = 0;
for (int i = 0; i < G; i++) {
int EGi = gen[i].energie;
int CGi = gen[i].cost;
for (int j = EGi; j <= W; j++) {
dp[j] = min(dp[j], dp[j - EGi] + CGi);
}
}
if (dp[W] == INF) {
fout << -1 << endl;
}
else {
fout << dp[W] << endl;
}
return 0;
}