Pagini recente » Borderou de evaluare (job #1072095) | Borderou de evaluare (job #1100195) | Borderou de evaluare (job #275120) | Cod sursa (job #874155) | Cod sursa (job #3352755)
#include <fstream>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int INF = 999999999;
int main() {
ifstream fin("energii.in");
ofstream fout("energii.out");
int G, W;
cin >> G >> W;
vector<int> min_cost(W + 8, INF);
min_cost[0] = 0;
for (int i = 0; i < G; ++i) {
int e, c;
cin >> e >> c;
for (int j = W; j >= 0; --j) {
if (min_cost[j] != INF) {
int next_e = min(W, j + e);
if (min_cost[next_e] > min_cost[j] + c) {
min_cost[next_e] = min_cost[j] + c;
}
}
}
}
if (min_cost[W] == INF) {
cout << -1 << endl;
} else {
cout << min_cost[W] << endl;
}
return 0;
}