Cod sursa(job #2112920)

Utilizator CatapaPap Catalin Catapa Data 23 ianuarie 2018 23:00:10
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>
#include <cstring>

#define inf 0x3f3f3f

using namespace std;

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

int nrGeneratoare, energieNecesara;
int dp[10000];

int main()
{
    f >> nrGeneratoare >> energieNecesara;

    for(int i=1; i<=energieNecesara; i++)
        dp[i] = inf;

    for(int i=1; i<=nrGeneratoare; i++)
    {
        int energie, cost;
        f >> energie >> cost;

        for(int j=energieNecesara-1; j>=0; j--)
        {
            if(j + energie <= energieNecesara && dp[j + energie] > dp[j] + cost)
                dp[j + energie] = dp[j] + cost;
            else
                if(j + energie > energieNecesara && dp[energieNecesara] > dp[j] + cost)
                    dp[energieNecesara] = dp[j] + cost;
        }
    }

    if(dp[energieNecesara] == inf) g << "-1"; else g << dp[energieNecesara];

    return 0;
}