Cod sursa(job #2972768)

Utilizator TODEToderita Mihai TODE Data 30 ianuarie 2023 11:44:03
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
using namespace std;

ifstream in("energii.in");
ofstream out("energii.out");
int n_generators , req_energy;
struct values{
    int e , p;
};
values v[1001];
int sol[1001][5001];
int main(){
    in >> n_generators >> req_energy;
    for(int i = 1 ; i <= n_generators ; i++){
        sol[0][i] = -1;
        in >> v[i].e >> v[i].p;
    }
    for(int i = 1 ; i <= n_generators ; i++){
        for(int j = 1 ; j <= req_energy ; j++){
            if(j <= v[i].e){
                if(sol[i - 1][j] > 0)
                    sol[i][j] = min(sol[i - 1][j] , v[i].p);
                else{
                    sol[i][j] = v[i].p;
                }
            }
            else{
                if(sol[i - 1][j - v[i].e] > 0){
                    sol[i][j] = v[i].p + sol[i - 1][j - v[i].e];
                }
            }
        }
    }
    /*for(int i = 1 ; i <= n_generators ; i++ , out << '\n')
        for(int j = 1 ; j <= req_energy ; j++)
            out << sol[i][j] << ' ';*/
    out << sol[n_generators][req_energy];
}