Cod sursa(job #3317421)

Utilizator _.diannaq._Bengescu Diana _.diannaq._ Data 23 octombrie 2025 16:54:49
Problema Energii Scor 55
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");

struct generator {
    int en;
    int ct;
};

generator v[1002];
int dp[1002][5002];

int main() {
    int g, W;
    fin >> g >> W;

    for(int i = 1; i <= g; i++)
        fin >> v[i].en >> v[i].ct;

    // initializare dp
    for(int j = 0; j <= 5000; j++) dp[0][j] = 1e9;
    dp[0][0] = 0;

    for(int i = 1; i <= g; i++) {
        for(int j = 0; j <= 5000; j++) {
            dp[i][j] = dp[i-1][j]; // nu luam generatorul i
            if(j >= v[i].en)
                dp[i][j] = min(dp[i][j], dp[i-1][j - v[i].en] + v[i].ct);
        }
    }

    int ans = 1e9;
    for(int j = W; j <= 5000; j++)
        ans = min(ans, dp[g][j]);

    if(ans >= 1e9) fout << -1;
    else fout << ans;

    return 0;
}