Cod sursa(job #2772997)

Utilizator Linca_AmaliaLinca Mihaela Amalia Linca_Amalia Data 3 septembrie 2021 21:21:44
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("energii.in");;
ofstream fout("energii.out");

const int INF = 1e9;
const int DIM = 1e7 + 5;

int n, ENG, out, i, j, E[1005], P[1005], f[DIM];

int main(){
    fin >> n >> ENG;
    for (i = 1; i <= n; i++){
        fin >> E[i] >> P[i];
    }
    for (i = 1; i <= DIM; i++)
        f[i] = INF;
    for (i = 1; i <= n; i++){
        for (j = DIM - E[i]; j >= 0; j--){
            if ( f[j] != INF ){
                if ( f[ j + E[i] ] > f[j] + P[i] )
                    f[ j + E[i] ] = f[j] + P[i];
            }
        }
    }
    out = INF;
    for (i = ENG; i <= DIM; i++){
        out = min(out, f[i]);
    }
    if (out == INF)
        fout << "-1";
    else
        fout << out;
    return 0;
}