Cod sursa(job #2224997)

Utilizator victorv88Veltan Victor victorv88 Data 25 iulie 2018 17:34:39
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <climits>

using namespace std;

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

int nr_generatoare;
int necesar;

pair <int,int> generator[1010];

int dp[10005];
void dinamica()
{
    for (int i=1; i<=10003; i++)
    {
        dp[i]=99999999;
    }
    for (int i=1; i<=nr_generatoare; i++)
    {
        for (int j=2*necesar; j>0; j--)
        {
            if (j-generator[i].first<0)
                break;
            dp[j]=min(dp[j],dp[j-generator[i].first]+generator[i].second);

        }
    }
    if (dp[necesar]==99999999)
        g<< -1;
    else
        g << dp[necesar];
}

int main()
{
    f >> nr_generatoare;
    f >> necesar;
    for (int i=1; i<=nr_generatoare; i++)
    {
        f >> generator[i].first >> generator[i].second;
        if (generator[i].first>necesar)
            generator[i].first=necesar;
    }
    dinamica();
    return 0;
}