Pagini recente » Cod sursa (job #1489716) | Monitorul de evaluare | Cod sursa (job #969931) | Monitorul de evaluare | Cod sursa (job #2050008)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int length, necessary, dynamicCost[5002];
int main() {
fin >> length >> necessary;
for (int iter = 0; iter < length; ++iter) {
int energy, cost;
fin >> energy >> cost;
if (dynamicCost[energy] == 0)
dynamicCost[energy] = cost;
dynamicCost[energy] = min(dynamicCost[energy], cost);
if (iter + 1 - energy > 0 and dynamicCost[iter + 1 - energy] > 0)
dynamicCost[energy] = min(dynamicCost[energy], dynamicCost[iter + 1 - energy] + cost);
}
if (dynamicCost[necessary] == 0)
fout << "-1";
else
fout << dynamicCost[necessary] << '\n';
return 0;
}