Cod sursa(job #3246578)

Utilizator GabrielPopescu21Silitra Gabriel - Ilie GabrielPopescu21 Data 3 octombrie 2024 18:06:14
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 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] =  10000000;

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

    int ans = 10000000;
    for (int i = G; i <= 5000; ++i)
        if (dp[i])
            ans = min(ans, dp[i]);

    if (ans == 10000000)
        cout << -1;
    else
        cout << ans;

    return 0;
}