Cod sursa(job #2163126)

Utilizator Dragos123Tatar Dragos Vlad Dragos123 Data 12 martie 2018 16:49:53
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>

std::ifstream fin ("test.in");
std::ofstream fout ("test.out");

const int MaxN = 1001, MaxG = 11001, Inf = 1 << 30;
int n, G, a[MaxG], e[MaxN], c[MaxN], sol;

void ReadData();
void Solve();
void Write();

int main ()
{
    ReadData();
    Solve();
    Write();
}

void ReadData()
{
    fin >> n;
    fin >> G;

    for (int i = 1; i <= n; ++i)
        fin >> e[i] >> c[i];
}

void Solve()
{
    for (int i = 0; i <= MaxG; ++i)
        a[i] = Inf;

    a[0] = 0;

    for (int i = 1; i <= n; ++i)
    {
        for (int j = G; j >= 0; --j)
            if (a[j] != Inf && a[j + e[i]] > a[j] + c[i])
                a[j + e[i]] = a[j] + c[i];
    }

    sol = Inf;

    for (int i = G; i <= MaxG; ++i)
        if (a[i] < sol)
            sol = a[i];
}

void Write()
{
    fout << sol;
}