Cod sursa(job #3199061)

Utilizator Dragos_HuiuDragos Huiu Dragos_Huiu Data 31 ianuarie 2024 16:16:40
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>

using namespace std;

ifstream cin("energii.in");
ofstream cout("energii.out");

const int INF = 1e9;
int main()
{
    int G, W;
    cin >> G >> W;
    int E[G], C[G];
    for (int i = 0; i < G; i++)
        cin >> E[i] >> C[i];
    
    int dp[W + 1];

    for (int i = 1; i <= W; i++)
        dp[i] = INF;

    dp[0] = 0;
    for (int i = 0; i < G; i++)
        for (int j = W - 1; j >= 0; j--)
        {
            if(dp[j] == INF)
                continue;
            int j_obtinut = j + E[i];
            j_obtinut = min(j_obtinut, W);
            dp[j_obtinut] = min(dp[j_obtinut], dp[j] + C[i]);
        }
    
    if (dp[W] == INF)
        cout << -1;
    else
        cout << dp[W];
    
    cin.close();
    cout.close();
}