Cod sursa(job #2703730)

Utilizator Alex_tz307Lorintz Alexandru Alex_tz307 Data 9 februarie 2021 10:01:32
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <bits/stdc++.h>
#define INF 0x3f3f3f3f

using namespace std;

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

void min_self(int &a, int b) {
    a = min(a, b);
}

int main() {
    int G, W;
    fin >> G >> W;
    vector<int> dp(W + 1, INF);
    dp[0] = 0;
    for(int i = 0; i < G; ++i) {
        int w, v;
        fin >> w >> v;
        for(int wt = W; wt > w; --wt)
            min_self(dp[wt], dp[wt - w] + v);
        for(int wt = 1; wt <= w; ++wt)
            min_self(dp[wt], v);
    }
    int ans = dp[W];
    if(ans == INF)
        ans = -1;
    fout << ans << '\n';
}