Cod sursa(job #2810006)

Utilizator Ion.AAlexandru Ion Ion.A Data 28 noiembrie 2021 10:38:04
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

const int GMAX = (5 * 1e3) + 1;
int n, G, d[GMAX], mini = -1;

int main()
{
    in >> n;
    in >> G;
    for (int i = 1; i < G; i++)
    {
        d[i] = -1;
    }
    for (int i = 1; i <= n; i++)
    {
        int cost, profit;
        in >> cost >> profit;
        for (int j = G - 1; j >= G - cost; j--)
        {
            if (d[j] != -1 && (mini == -1 || mini > d[j] + profit))
            {
                mini = d[j] + profit;
            }
        }
        for (int j = G - cost - 1; j >= 0; j--)
        {
            if (d[j] != -1 && (d[j + cost] == -1 || d[j + cost] > d[j] + profit))
            {
                d[j + cost] = d[j] + profit;
            }
        }
    }
    out << mini;
    return 0;
}