Pagini recente » Cod sursa (job #1702747) | Cod sursa (job #1490257) | Cod sursa (job #2778397) | Cod sursa (job #2056846) | Cod sursa (job #2050064)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int length, necessary, dynamicCost[5005];
void print();
int main() {
for (int &i : dynamicCost) {
i = 1002004;
}
fin >> length >> necessary;
for (int iter = 0; iter < length; ++iter) {
int energy, cost;
fin >> energy >> cost;
for (int i = necessary - energy; i > 0; --i) {
dynamicCost[i + energy] = min(dynamicCost[i + energy], dynamicCost[i] + cost);
}
dynamicCost[energy] = min(dynamicCost[energy], cost);
}
// for (int i = 0; i <= 100; ++i) {
// cout << i << ' ' << dynamicCost[i] << '\n';
// }
print();
return 0;
}
void print() {
for (int iter = 5002; iter >= necessary; iter--) {
if (dynamicCost[iter] != 1002004) {
fout << dynamicCost[iter] << '\n';
return;
}
}
fout<<"-1";
}