Cod sursa(job #3160769)

Utilizator RatebaSerbanescu Andrei Victor Rateba Data 25 octombrie 2023 02:20:29
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>

using namespace std;

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

// 1 < G < 1001
// 1 < W < 5001
// 0 ≤ EGi,CGi < 10001

const int MAX_ENERGIE = 5001;
const int MAX_GEN = 1001;
const int INF = 0x3f3f3f3f;
const int NEFOL = -2;

int dp[MAX_GEN + 1][MAX_ENERGIE];

int main() {

    int nr_gen;
    int max_energie;

    fin >> nr_gen >> max_energie;

    for (int e = 1; e <= max_energie; e++) {
        dp[0][e] = INF;
    }

    for (int i = 1; i <= nr_gen; i++) {
        int energie;
        int cost;

        fin >> energie >> cost;

        for (int e = max_energie; e > energie; e--) {
            int caz1 = dp[i - 1][e];
            int caz2 = cost + dp[i - 1][e - energie];

            dp[i][e] = min(caz1, caz2);
        }

    }

    int ans = dp[nr_gen][max_energie];
    fout << ((ans >= INF) ? -1 : ans) << endl;

    return 0;
}