Cod sursa(job #3320900)

Utilizator RaresAnghelAnghel Rares Mihai RaresAnghel Data 7 noiembrie 2025 17:44:07
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
const int INF = 1e9;
int main() {

    int G, W;
    f >> G >> W;
    vector<int> a(G + 1), b(G + 1);
    for (int i = 1; i <= G; i++)
        f >> a[i] >> b[i];

    int mx = 0;
    for (int i = 1; i <= G; i++) mx += a[i];
    mx = min(mx, W + 10000);

    vector<int> dp(mx + 1, INF);
    dp[0] = 0;

    for (int i = 1; i <= G; i++)
        for (int w = mx - a[i]; w >= 0; w--)
            if (dp[w] != INF)
                dp[w + a[i]] = min(dp[w + a[i]], dp[w] + b[i]);

    int ans = INF;
    for (int w = W; w <= mx; w++)
        ans = min(ans, dp[w]);

    if (ans == INF) g << -1;
    else g << ans;

    return 0;
}