Cod sursa(job #3305039)

Utilizator Cyb3rBoltSbora Ioan-David Cyb3rBolt Data 29 iulie 2025 16:00:44
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int n, need, maxim, sum = 0;

struct Iris {
    int energie, cost;
}v[1010];

int main()
{
    fin >> n >> need;
    for(int i=1; i<=n; i++) {
        fin >> v[i].energie >> v[i].cost;
        maxim = max(maxim, v[i].energie);
        sum += v[i].energie;
    }
    if(sum < need) {
        fout << -1;
        return 0;
    }
    int emax = need + maxim;
    vector<int> dp(emax + 1, 2e9); ///dp[i] = costul minim producerii de o energie = i
    dp[0] = 0;
    for(int i=1; i<=n; i++)
        for(int j=emax; j>=v[i].energie; j--) dp[j] = min(dp[j], dp[j - v[i].energie] + v[i].cost);
    int minim = 2e9;
    for(int i=need; i<=emax; i++) minim = min(minim, dp[i]);
    fout << minim;

    return 0;
}

///doamne ce eroare avusai zici ca s beat..