Cod sursa(job #1597547)

Utilizator MeArioDovleac Dorin MeArio Data 12 februarie 2016 02:24:11
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.62 kb
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <string.h>
#include <climits>

using namespace std;

int main()
{
    ifstream input ("energii.in");
    int generators;
    input >> generators;
    double reqPower;
    input >> reqPower;
    int genArray[generators][2];
    int genArray_findex = generators - 1;
    for(int i = 0;i <= genArray_findex;i++){
        input >> genArray[i][0];
        input >> genArray[i][1];
    }
    input.close();
    int ct;
    double scores[generators];
    int scores_findex = generators - 1;
    for(ct = 0;ct <= scores_findex;ct++){
        scores[ct] = genArray[ct][0] / reqPower;
    }
    int viable_size = generators * generators;
    int viable[viable_size];
    memset(viable, 0, viable_size*sizeof(int));
    int viable_findex = generators * generators - 1;
    for(ct = 0;ct <= scores_findex;ct++){
        int sum = 0;
        int price = 0;
        for(int ct2 = ct + 1;ct <= scores_findex;ct2++){
            if(scores[ct] == 1){
                viable[ct] = genArray[ct][1];
                break;
            }
            sum = sum + scores[ct] + scores[ct2];
            price = genArray[ct][1] + genArray[ct2][1];
            if (sum >= 1){
                viable[ct] = price;
                break;
            }
        }
    }
    int min = INT_MAX;
    for(ct = 0;ct <= viable_findex;ct++){
        if(viable[ct] == 0){
            break;
        }
        if(viable[ct] <= min){
            min = viable[ct];
        }
    }
    ofstream output ("energii.out");
    output << min;
    output.close();
    return 0;
}