Cod sursa(job #2850477)

Utilizator QTudorOancea Tudor-Alexandru QTudor Data 16 februarie 2022 20:28:22
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.36 kb
#include <iostream>
#include <vector>
#include <array>
#include <climits>
#include <fstream>

using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");
int minimum_cost(int number_of_generators, int necessary_power, const vector<int> &generator_power,
                 const vector<int> &generator_cost) {
    array<array<int, 100>, 100> dp{};
    for (int i = 0; i <= necessary_power; i++) {
        for (int j = 0; j <= number_of_generators; j++) {
            dp[i][j] = INT_MAX;
        }
    }
    for (int i = 1; i <= necessary_power; i++){
        for(int j = 1; j<=number_of_generators; j++){
            if(generator_power[j] < i){
                dp[i][j] = dp[i][j-1];
            }
            else dp[i][j] = min(
                        generator_cost[j],
                        dp[i][j - 1]
                );
        }
    }
    return dp[necessary_power][number_of_generators];
}

int main() {
    int number_of_generators;
    int necessary_power;
    fin >> number_of_generators >> necessary_power;
    vector<int> generator_power(number_of_generators);
    vector<int> generator_cost(number_of_generators);
    for (int i = 0; i < number_of_generators; i++) {
        fin >> generator_power[i];
        fin >> generator_cost[i];
    }
    fout << minimum_cost(number_of_generators, necessary_power, generator_power, generator_cost);
    return 0;
}