Cod sursa(job #3168353)

Utilizator Vlad_NistorNIstor Vlad Vlad_Nistor Data 12 noiembrie 2023 10:50:24
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>
using namespace std;
#define INF 1e9
#define NMAX 5020

int dp[NMAX], c[NMAX], e[NMAX];
int main(void){
    ofstream cout("energii.out");
    ifstream cin("energii.in");
    int n, G;
    cin >> n >> G;

    for(int i = 1;i<=n;i++){
        cin >> e[i] >> c[i];
    }

    for(int i = 1;i<=G;i++)dp[i] = INF;
    for(int i = 1;i<=n;i++){
        for(int j = G - 1;j>=0;j--){
            if(dp[j] != INF){
                int aux = j + e[i];
                if(aux > G){
                    aux = G;
                }
                if(dp[aux] > dp[j] + c[i])dp[aux] = dp[j] + c[i];
            }
        }
    }
    if(dp[G] == INF)cout << -1;
    else cout << dp[G];
}