Pagini recente » Diferente pentru implica-te/arhiva-educationala intre reviziile 70 si 69 | Cod sursa (job #2877235) | Cod sursa (job #441691) | Cod sursa (job #1626939) | Cod sursa (job #2675946)
#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;
}
}
}
return cost_minim;
}
int main() {
int generatoare[10001][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;
}