Cod sursa(job #3183951)

Utilizator ililogIlinca ililog Data 13 decembrie 2023 19:00:34
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
using namespace std;
#include<iostream>
#include<fstream>

#define INF 1e9

ifstream fin("energii.in");
ofstream fout("energii.out");

int n, G;
int w[1001], p[1001];
int dp[5005];

int main() {
    
    fin >> n >> G;
    for (int i = 1; i<=n; i++) {
        fin >> w[i] >> p[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 poz = j + w[i];
                if (poz > G) {
                    poz = G;
                }
                if (dp[j] + p[i] < dp[poz]) {
                    dp[poz] = dp[j] + p[i];
                }
            }
        }
    }
    
    if (dp[G] == INF) {
        fout << "-1";
        return 0;
    } 
    
    fout << dp[G];
    
    return 0;
}