Cod sursa(job #3358591)

Utilizator nicoleta_iancuIancu Nicoleta nicoleta_iancu Data 18 iunie 2026 10:51:34
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb

#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#define inf 1e9
using namespace std;
vector<int>v;
ifstream fin("energii.in");
ofstream fout("energii.out");
struct generator {
    int energie, cost;
    generator() :energie(0), cost(0) {};
};
const int NMAX = 10002;
vector<int>dp(NMAX, inf);
int main()
{
    int n,w;
    fin >> n>>w;
    vector<generator>v(n);
    for (int i = 0; i < n; ++i) {
        fin >> v[i].energie >> v[i].cost;
    }
    dp[0] = 0;
    int rez = inf;
    for (int i = 0; i < n; ++i) {
        for (int j = NMAX-1; j >=0; --j) {
            if (j - v[i].energie >= 0) {
                dp[j] = min(dp[j - v[i].energie] + v[i].cost, dp[j]);
                if (j >= w) {
                    rez = min(rez, dp[j]);
                }
            }
        }
    }
    if (rez == inf) {
        fout << "-1";
    }
    else {
        fout << rez;
    }
    return 0;
}
//=^..^=