Cod sursa(job #3154394)

Utilizator MoraZ3UMorariu Razvan MoraZ3U Data 4 octombrie 2023 17:06:51
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;

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

struct Generator {
    int energie;
    int cost;
};

int dp[1005][5005] = { 0 };
Generator generatoare[1005];

int main() {
    int G, W;
    fin >> G >> W;

    for (int i = 0; i < G; i++) {
        fin >> generatoare[i].energie >> generatoare[i].cost;
    }

    for (int i = 0; i < G; i++) {
        for (int j = 0; j <= W; j++) {
            int EGi = generatoare[i].energie;
            int CGi = generatoare[i].cost;

            if (j < EGi) {
                dp[i + 1][j] = dp[i][j];
            }
            else {
                dp[i + 1][j] = min(dp[i][j], dp[i + 1][j - EGi] + CGi);
            }
        }
    }

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

    return 0;
}