Cod sursa(job #3246566)

Utilizator GabrielPopescu21Silitra Gabriel - Ilie GabrielPopescu21 Data 3 octombrie 2024 17:39:20
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <bits/stdc++.h>
using namespace std;

int dp[5005], w[1005], p[1005];

int main()
{
    ifstream cin("energii.in");
    ofstream cout("energii.out");
    int n, G;
    cin >> n >> G;

    for (int i = 1; i <= n; ++i)
        cin >> w[i] >> p[i];

    for (int i = 1; i <= G; ++i)
        dp[i] = INT_MAX;

    dp[0] = 0;
    for (int i = 1; i <= n; ++i)
        for (int j = G; j >= w[i]; --j)
            if (dp[j-w[i]] != INT_MAX)
                dp[j] = min(dp[j], dp[j-w[i]]+p[i]);

    if (dp[G] == INT_MAX)
        cout << -1;
    else
        cout << dp[G];

    return 0;
}