Cod sursa(job #3141909)

Utilizator Traian_7109Traian Mihai Danciu Traian_7109 Data 17 iulie 2023 16:25:53
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

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

const int WMAX = 5e3, INF = 1e9;
int dp[WMAX+5];

signed main() {
    ios_base :: sync_with_stdio(false);
    fin.tie(nullptr), fout.tie(nullptr);

    int n, w, e, c;
    fin>>n>>w;
    for (int i = 1; i <= w; i++)
        dp[i] = INF;
    for (int i = 1; i <= n; i++) {
        fin>>e>>c;
        for (int j = w-1; j >= 0; j--)
            if (dp[j] != INF)
                if (j+e < w)
                    dp[j+e] = min(dp[j+e], dp[j]+c);
                else
                    dp[w] = min(dp[w], dp[j]+c);
    }
    if (dp[w] == INF)
        fout<<-1;
    else
        fout<<dp[w];
    return 0;
}