Cod sursa(job #3284697)

Utilizator _andr31Rusanescu Andrei-Marian _andr31 Data 12 martie 2025 08:54:24
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <limits.h>
using namespace std;
int main()
{
    ifstream fin("energie.in");
    ofstream fout("energie.out");

    int n, w, total = 0;
    fin >> n >> w;
    vector<pair<int, int>> objects(n);
    vector<vector<int>> dp(n+1, vector<int>(w + 1, 50000000));
    for (int i = 0; i < n; ++i) {
        // first = energia, second = costul
        fin >> objects[i].first >> objects[i].second;
        total += objects[i].first;
    }
    dp[0][0] = 0;
    for (int i = 1; i <= n; ++i) {
        for (int j = 0; j <= w; ++j) {
            if (j - objects[i-1].first >= 0)
                dp[i][j] = min(dp[i-1][j], dp[i-1][j - objects[i-1].first] + objects[i-1].second);
            else
                dp[i][j] = dp[i-1][j];
        }
    }
    fout << dp[n][w];
    return 0;
}