Cod sursa(job #2772616)

Utilizator Linca_AmaliaLinca Mihaela Amalia Linca_Amalia Data 1 septembrie 2021 20:19:01
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("energii.in");;
ofstream fout("energii.out");
int n, ENG, out, i, j, E[10005], P[10005], f[10005];

int main(){
    fin >> n >> ENG;
    for (i = 1; i <= n; i++){
        fin >> E[i] >> P[i];
    }
    for (i = 1; i <= n; i++){
        for (j = ENG; j >= 1; j--){
            if ( f[j] == 1 ){
                if ( j + E[i] <= ENG && f[ j + E[i] ] < f[j] + P[i] )
                    f[ j + E[i] ] = f[j] + P[i];
            }
        }
        if ( E[i] <= ENG && f[ E[i] ] < P[i])
            f[ E[i] ] =  P[i];
    }

    for (i = 1; i <= ENG; i++){
        out = max(out, f[i]);
    }
    fout << out;
    return 0;
}