Cod sursa(job #1115909)

Utilizator alexclpAlexandru Clapa alexclp Data 22 februarie 2014 10:27:58
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <climits>

using namespace std;

ifstream in ("energii.in");
ofstream out ("energii.out");

const int G = 10005;
const int W = 15005;

int energieNecesara, numarGeneratoare;
int d[W];

void init()
{
    for (int i = 1; i <= energieNecesara + G; i++) {
        d[i] = INT_MAX;
    }
}

int main()
{
    in >> numarGeneratoare >> energieNecesara;

    init();

    for (int i = 1; i <= numarGeneratoare; i++) {
        int energie, cost;
        in >> energie >> cost;

        for (int j = energieNecesara; j >= 0; j--) {
            if (d[j] != INT_MAX and d[j + energie] > d[j] + cost) {
                d[j + energie] = d[j] + cost;
            }
        }
    }

    if (d[energieNecesara] != INT_MAX) {
        out << d[energieNecesara] << "\n";
    } else {
        out << "-1\n";
    }

    return 0;
}