Cod sursa(job #3353161)

Utilizator PBaulurcaBurca Paul PBaulurca Data 5 mai 2026 11:40:51
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda cerc-acs-02-05-26 Marime 0.67 kb
#include <bits/stdc++.h>
using namespace std;

int dp[5001];

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

    int G, W;
    fin >> G >> W;

    vector<int> E(G), C(G);
    for (int i = 0; i < G; i++)
        fin >> E[i] >> C[i];

    const int INF = 1e9;
    fill(dp, dp + W + 1, INF);
    dp[0] = 0;

    for (int i = 0; i < G; i++) {
        int ei = E[i], ci = C[i];
        for (int e = W; e >= 0; e--) {
            if (dp[e] == INF) continue;
            int ne = e + ei >= W ? W : e + ei;
            int val = dp[e] + ci;
            if (val < dp[ne]) dp[ne] = val;
        }
    }

    fout << (dp[W] == INF ? -1 : dp[W]) << "\n";
    return 0;
}