Pagini recente » Cod sursa (job #2541278) | Cod sursa (job #2202154) | Cod sursa (job #557229) | Cod sursa (job #633382) | Cod sursa (job #3233790)
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
#include <climits>
using namespace std;
int main() {
ifstream infile("energii.in");
ofstream outfile("energii.out");
int G, W;
infile >> G >> W;
vector<int> E(G);
vector<int> C(G);
for (int i = 0; i < G; ++i) {
infile >> E[i] >> C[i];
}
vector<int> dp(W + 1, INT_MAX);
dp[0] = 0;
for (int i = 0; i < G; ++i) {
for (int j = W; j >= E[i]; --j) {
if (dp[j - E[i]] != INT_MAX) {
dp[j] = min(dp[j], dp[j - E[i]] + C[i]);
}
}
}
if (dp[W] == INT_MAX) {
outfile << -1 << endl;
} else {
outfile << dp[W] << endl;
}
infile.close();
outfile.close();
return 0;
}