Pagini recente » Cod sursa (job #217377) | Cod sursa (job #3193182) | Cod sursa (job #2086361) | Cod sursa (job #1778380) | Cod sursa (job #2342176)
#include <fstream>
#include <cstring>
constexpr int MAX_W = 5001;
constexpr int INF = 0x7FFFFF;
int cost[MAX_W];
int main() {
int n, W, i, j, w, c, r = INF;
std::ifstream in("energii.in");
std::ofstream out("energii.out");
in >> n >> W;
std::memset(cost + 1, 0xFF, static_cast<size_t>(W - 1) * sizeof(int));
for (i = 0; i < n; ++i) {
in >> w >> c;
for (j = W - 1; j >= 0; --j) {
if (cost[j] != -1) {
if (j + w < W) cost[j + w] = cost[j] + c;
else if (cost[j] + c < r) r = cost[j] + c;
}
}
}
out << (r == INF ? -1 : r);
return 0;
}