Cod sursa(job #2370761)

Utilizator crion1999Anitei cristi crion1999 Data 6 martie 2019 13:35:44
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>
#include <algorithm>

#define inf 0x3f3f3f3f
#define NMAX 1005
#define WMAX 15005
using namespace std;

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

int N, W;

pair<int, int> generators[NMAX];

int dp[WMAX];


int main()
{
    fi >> N;
    fi >> W;
    int a, b;
    for(int i = 1; i <= N; ++i)
    {
        fi >> a >> b;
        generators[i] = {a, b};
    }

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

    for(int i = 1; i <= N; ++i)
    {
        for(int j = W; j >= 0; --j)
        {
            if(dp[j] != inf)
                dp[j + generators[i].first] = min(dp[j + generators[i].first], dp[j] + generators[i].second);
        }
    }
    int minn = inf;
    for(int i = W; i <= W + 10000; ++i)
            minn = min(minn, dp[i]);

    if(minn == inf)
        fo << -1;
    else
        fo << minn;

}