Pagini recente » Cod sursa (job #2451907) | Cod sursa (job #2869576) | Cod sursa (job #31270) | Cod sursa (job #504226) | Cod sursa (job #2589449)
/** Complexitate
O(10000 * G)
**/
#include <bits/stdc++.h>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
struct generator {
int energy, cost;
};
int used[10001], n, energyToRefill;
int main()
{
in >> n >> energyToRefill;
for(int i = 1; i <= 10000; i++) {
used[i] = 1e9;
}
int minCost = 1e9;
for(int i = 1; i <= n; i++) {
generator a;
in >> a.energy >> a.cost;
for(int j = 1e4; j >= a.energy; j--) {
if(j - a.energy >= 0) {
if(used[j - a.energy] != 1e9) {
used[j] = min(used[j], used[j - a.energy] + a.cost);
}
if(j >= energyToRefill) {
minCost = min(minCost, used[j]);
}
}
}
}
minCost = minCost == 1e9? -1 : minCost;
out << minCost;
return 0;
}