Cod sursa(job #3323966)

Utilizator Minea_TheodorMinea Theodor Stefan Minea_Theodor Data 20 noiembrie 2025 17:00:11
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>

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

const int INF = 1e9;
const int SIZ=1005;
int eg[SIZ], cg[SIZ];
int dp[20005];
void setup()
{
    for(int i=0; i < 20005; i++)
        dp[i]=INF;
}
int main()
{
    setup();
    int g, w;
    fin >> g >> w;
    int egmax = 0;
    for (int i = 1; i <= g; i++)
    {
        fin >> eg[i] >> cg[i];
        egmax = max(egmax, eg[i]);
    }
    int maxe = w + egmax;
    dp[1] = 0;
    for (int i = 1; i <= g; i++)
    {
        for (int j = maxe - eg[i]; j >= 0; j--)
        {
            if (dp[j] != INF)
            {
                dp[j+eg[i]] = min(dp[j+eg[i]], dp[j] + cg[i]);
            }
        }
    }

    int rez = INF;
    for(int i = w; i <= maxe; i++)
        rez = min(rez, dp[i]);
    if(rez == INF)
        fout << -1;
    else
        fout << rez;
    return 0;
}