Cod sursa(job #2920063)

Utilizator IvanAndreiIvan Andrei IvanAndrei Data 21 august 2022 19:08:59
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>

using namespace std;

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

const int max_size = 1e3 + 1, max_dp = 15e3 + 1, INF = 1e9 + 1;

int sol[max_dp], p[max_size], e[max_size];

int main ()
{
    for (int i = 1; i < max_dp; i++)
    {
        sol[i] = INF;
    }
    int n, g;
    in >> n >> g;
    for (int i = 1; i <= n; i++)
    {
        in >> e[i] >> p[i];
    }
    for (int i = 1; i <= n; i++)
    {
        for (int j = g; j > 0; j--)
        {
            if (j > e[i])
            {
                sol[j] = min(sol[j], sol[j - e[i]] + p[i]);
            }
            else
            {
                sol[j] = min(sol[j], p[i]);
            }
        }
    }
    if (sol[g] == INF)
    {
        sol[g] = -1;
    }
    out << sol[g];
    in.close();
    out.close();
    return 0;
}