Cod sursa(job #3188551)

Utilizator sdragosSandu Dragos sdragos Data 3 ianuarie 2024 12:41:29
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>
using namespace std;

int gen, energyNeeded;
int enGen[1010], costGen[1010], dp[5010];

int main()
{
    freopen("energii.in", "r", stdin);
    freopen("energii.out", "w", stdout);

    cin >> gen >> energyNeeded;
    for(int i = 1; i <= gen; i++)
        cin >> enGen[i] >> costGen[i];
    for(int i = 0; i <= energyNeeded; i++)
            dp[i] = 2e9;

    for(int i = 1; i <= gen; i++)
        for(int j = energyNeeded; j >= 0; j--)
        {
            if(j <= enGen[i])
                dp[j] = min(dp[j], costGen[i]);
            else
                dp[j] = min(dp[j], dp[j - enGen[i]] + costGen[i]);
        }

    if(dp[energyNeeded] == 2e9)
        cout << -1;
    else
        cout << dp[energyNeeded];
    return 0;
}