Cod sursa(job #3154397)

Utilizator MoraZ3UMorariu Razvan MoraZ3U Data 4 octombrie 2023 17:16:19
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <algorithm>

using namespace std;

struct Generator {
    int energia;
    int cost;

    Generator(int e, int c) : energia(e), cost(c) {}
};

int main() {
    ifstream fin("energii.in");
    ofstream fout("energii.out");

    int G, W;
    fin >> G >> W;
    Generator generators[100];

    for (int i = 0; i < G; i++) {
        int E, C;
        fin >> E >> C;
        generators[i] = Generator(E, C);
    }

    int dp[5001];
    dp[0] = 0;

    for (int i = 1; i <= W; i++) {
        dp[i] = 10001;
        for (int j = 0; j < G; j++) {
            if (generators[j].energia <= i) {
                dp[i] = min(dp[i], dp[i - generators[j].energia] + generators[j].cost);
            }
        }
    }

    if (dp[W] == 10001) {
        fout << -1 << endl;
    }
    else {
        fout << dp[W] << endl;
    }

    return 0;
}