Cod sursa(job #2519306)

Utilizator WilIiamperWilliam Damian Balint WilIiamper Data 7 ianuarie 2020 16:05:21
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#define inf 100010

using namespace std;
ifstream fin ("energii.in");
ofstream fout ("energii.out");
int g, w, e[1010], c[1010], dp[1010][5010];

int minim (int a, int b) {
    if (a < b) return a; else return b;
}

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

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

    for (int i = 1; i <= g; i++) {
        for (int j = 1; j <= w; j++) {
            if (j <= e[i])
                dp[i][j] = minim(dp[i-1][j], c[i]);
            else {
                dp[i][j] = minim(dp[i-1][j], dp[i-1][j-e[i]] + c[i]);
            }

        }
    }

    if (dp[g][w] == inf)
        fout << -1;
    else
        fout << dp[g][w];
    return 0;
}