Pagini recente » Cod sursa (job #1713038) | Cod sursa (job #2856397) | Cod sursa (job #1099045) | Cod sursa (job #151154) | Cod sursa (job #1115934)
#include <fstream>
#include <climits>
using namespace std;
ifstream in ("energii.in");
ofstream out ("energii.out");
const int G = 10002;
const int W = 15003;
int energieNecesara, numarGeneratoare;
int d[W];
void init()
{
for (int i = 1; i <= energieNecesara + G; i++) {
d[i] = INT_MAX;
}
}
int sol()
{
int rez = INT_MAX;
for (int i = energieNecesara + G; i >= energieNecesara; i--) {
if (d[i] < rez) {
rez = d[i];
}
}
return rez == INT_MAX ? -1 : rez;
}
int main()
{
in >> numarGeneratoare >> energieNecesara;
init();
int energie, cost;
for (int i = 1; i <= numarGeneratoare; i++) {
in >> energie >> cost;
for (int j = energieNecesara; j >= 0; j--) {
if (d[j] != INT_MAX && d[j + energie] > d[j] + cost) {
d[j + energie] = d[j] + cost;
}
}
}
out << sol() << "\n";
return 0;
}