Cod sursa(job #2914674)

Utilizator vlad2009Vlad Tutunaru vlad2009 Data 20 iulie 2022 17:29:59
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>

using namespace std;

const int MAX_G = 1e3;
const int MAX_W = 5 * 1e3;
int dp[MAX_W + 1];
int g, w;

int main() {
    ifstream fin("energii.in");
    ofstream fout("energii.out");
    fin >> g >> w;
    for (int i = 1; i <= MAX_W; i++) {
        dp[i] = (1 << 30);
    }
    dp[0] = 0;
    for (int i = 1; i <= g; i++) {
        int a, b;
        fin >> a >> b;
        for (int j = MAX_G; j >= 1; j--) {
            if (j >= a) {
                dp[j] = min(dp[j], dp[j - a] + b);
            } else {
                dp[j] = min(dp[j], b);
            }
        }
    }
    if (dp[w] == (1 << 30)) {
        fout << "-1";
    } else {
        fout << dp[w];
    }
    return 0;
}