Pagini recente » Cod sursa (job #1811760) | Borderou de evaluare (job #498851) | Cod sursa (job #3308483) | Cod sursa (job #1985004) | Cod sursa (job #880757)
Cod sursa(job #880757)
#include <iostream>
#include <fstream>
using namespace std;
fstream fin("energii.in", ios::in);
fstream fout("energii.out", ios::out);
int i = 1,generator_count, required_power;
struct generator {
int power,repair_cost;
} generator_list[1000];
bool canSupplyEnougthPower() {
int dummy = required_power;
for(int i = 1; i <= generator_count; i++)
dummy = dummy - generator_list[i].power;
return !(dummy > 0);
}
int main() {
fin>>generator_count>>required_power;
for(i = 1; i <= generator_count; i++)
fin>>generator_list[i].power>>generator_list[i].repair_cost;
if(canSupplyEnougthPower() == false) {
fout<<-1;
fin.close();fout.close();
return 0;
}
int final_cost = 0;
for(int i = 1; i <= generator_count; i++) {
int cost = generator_list[i].repair_cost,
power= generator_list[i].power;
if(power >= required_power
&& (final_cost > cost || final_cost == 0))
final_cost = cost;
for(int j = i + 1; j <= generator_count; j++) {
cost += generator_list[j].repair_cost;
power += generator_list[j].power;
if(power >= required_power
&& (final_cost > cost || final_cost == 0))
final_cost = cost;
}
}
fout<<final_cost;
fin.close();fout.close();
return 0;
}