Cod sursa(job #880736)

Utilizator rusuandreirobertAndrei-Robert Rusu rusuandreirobert Data 17 februarie 2013 11:21:35
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
#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;
    }

    fout<<final_cost;

    fin.close();fout.close();
    return 0;
}