Cod sursa(job #2781788)

Utilizator bibiancapitu2004Pitu Bianca bibiancapitu2004 Data 10 octombrie 2021 14:30:50
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>

using namespace std;
int dp[5005];
const int INF = 1000000000;
int main()
{
    int n, g, s = 0;
    cin >> n >> g;

    int e[5005], p[5005];
    for(int i = 1;i <= n;i ++)
        {
            cin >> e[i] >> p[i];
            s += e[i];
        }

    if(s < g)
            cout << -1;
    else
    {
    for(int i = 1;i <= g;i ++)
        dp[i] = INF;

    for(int i = 1;i <= n;i ++)
    {
        for(int j = g;j >= 0;j --)
        {
            if(j >= e[i])
               dp[j] = min(dp[j], dp[j - e[i]] + p[i]);
            else
               dp[j] = min(dp[j], p[i]);
        }
    }
    cout << dp[g];
    }
    return 0;
}