Cod sursa(job #3345174)

Utilizator RuxandraPro12_Metehau Ruxandra Maria RuxandraPro12_ Data 8 martie 2026 11:47:33
Problema Energii Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <bits/stdc++.h>

using namespace std;

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

const int N_MAX = 5e3 + 5, G_MAX = 1e4;

int g, w, dp[2][G_MAX + 5], minim = 1e9;

struct generator {
    int energie, cost;
}v[N_MAX];

int main() {
    fin >> g >> w;
    /// dp[1][j] = cea mai buna submultime pana in i care are cost minim si energie j
    /// dp[0][j] = cea mai buna submultime pana in i - 1 care are cost minim si energie j
    for (int i = 1; i <= g; i++)
        fin >> v[i].energie >> v[i].cost;
    for (int i = 1; i <= G_MAX; i++)
        dp[0][i] = 1e9;
    for (int i = 1; i <= g; i++) {
        for (int j = 1; j <= G_MAX; j++) {
            if (v[i].energie > j)
                dp[1][j] = dp[0][j];
            else
                dp[1][j] = min(dp[0][j], dp[0][j - v[i].energie] + v[i].cost);
        }
        for (int j = 1; j <= G_MAX; j++) {
            if (j >= w)
                minim = min(minim, dp[1][j]);
            dp[0][j] = dp[1][j];
            dp[1][j] = 1e9;
        }
    }
    fout << minim << "\n";
    return 0;
}