Cod sursa(job #2242974)

Utilizator caesar2001Stoica Alexandru caesar2001 Data 19 septembrie 2018 19:36:54
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <iostream>
#include <fstream>
#include <climits>

using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");

const int NMAX = 10005;

int dp[NMAX], e[NMAX], c[NMAX];

int main() {
    int g, w;
    in >> g >> w;
    for(int i = 1; i <= g; i ++)
        in >> e[i] >> c[i];

    for(int i = 1; i <= w; i ++)
        dp[i] = INT_MAX;
    dp[0] = 0;

    for(int i = 1; i <= g; i ++)
        for(int j = e[i]; j <= w; j ++)
            if(dp[j - e[i]] != INT_MAX)
                dp[j] = min(dp[j - e[i]] + c[i], dp[j]);
    if(dp[w] == INT_MAX)
        dp[w] = -1;
    out << dp[w];
    return 0;
}