Cod sursa(job #3169732)

Utilizator octavian202Caracioni Octavian Luca octavian202 Data 15 noiembrie 2023 20:45:57
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int NMAX = 5005, SMAX = 10000;
int dp[SMAX + 5], n, c[NMAX], e[NMAX], s;

int main() {

    fin >> n >> s;
    for (int i = 1; i <= n; i++) {
        fin >> e[i] >> c[i];
    }

    for (int i = 1; i <= s; i++)
        dp[i] = 1e9;

    for (int i = 1; i <= n; i++) {
        for (int sum = s - 1; sum >= 0; sum--) {
            int nxt = min(sum + e[i], s);
            dp[nxt] = min(dp[nxt], dp[sum] + c[i]);
        }
    }

    int res = dp[s];
    if (res == 1e9)
        fout << -1;
    else
        fout << res;

    return 0;
}