Pagini recente » Cod sursa (job #1476814) | Cod sursa (job #2980427) | Cod sursa (job #654141) | Cod sursa (job #1640231) | Cod sursa (job #880748)
Cod sursa(job #880748)
#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 = 0,power = 0;
for(int j = i; 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;
if((generator_list[j].power + generator_list[i].power) >= required_power && (final_cost > cost) && i != j)
final_cost = (generator_list[j].repair_cost + generator_list[i].repair_cost);
}
}
fout<<final_cost;
fin.close();fout.close();
return 0;
}