Cod sursa(job #2676225)

Utilizator walentines44Serban Valentin walentines44 Data 23 noiembrie 2020 18:54:37
Problema Energii Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.63 kb
#include <iostream>
#include <fstream>

using namespace std;

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

void citire_date(int generatoare[][3], int &nr_generatoare, int &energie_necesara){
    fin >> nr_generatoare;
    fin >> energie_necesara;
    for(int i = 0; i < nr_generatoare; i++){
        for(int j = 0; j < 2; j++){
            fin >> generatoare[i][j];
        }
    }
}

int reparare_centrala(int generatoare[][3], int nr_generatoare, int energie_necesara){
    int total_energie = 0, total_cost = 0, cost_minim = 0;
    for(int i = 0; i < nr_generatoare; i++) {
        if(generatoare[i][0] < energie_necesara){
            total_energie += generatoare[i][0];
            total_cost += generatoare[i][1];
            }
        else{
            total_energie = generatoare[i][0];
            total_cost = generatoare[i][1];
        }
        if (total_energie >= energie_necesara){
            if (cost_minim == 0){
                cost_minim = total_cost;
                total_energie = 0;
                total_cost = 0;
            }
            else if (cost_minim > total_cost){
                cost_minim = total_cost;
                total_energie = 0;
                total_cost = 0;
            }
        }
        else{
            if(i == nr_generatoare - 1){
                cost_minim = -1;
            }
        }
    }

    return cost_minim;
}


int main() {
    int generatoare[1001][3], nr_generatoare, energie_necesara, cost_minim;

    citire_date(generatoare, nr_generatoare, energie_necesara);
    cost_minim = reparare_centrala(generatoare, nr_generatoare, energie_necesara);
    fout << cost_minim;

    return 0;
}