Cod sursa(job #907615)

Utilizator KinetixNeacsu George Kinetix Data 8 martie 2013 09:19:48
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.56 kb
//energii - Infoarena
#include<iostream>
#include<fstream>
using namespace std;

    ifstream in("energii.in");
    ofstream out("energii.out");

    int energieCost(char mod, int index, int energie, int cost);
    void afisare(int afiseaza);

    int main()
    {
        int generatoare, energieNecesara;
        int costMinim(32000), costCurent(32000);
        in>>generatoare>>energieNecesara;
        for(int index=0;index<generatoare;index++)
        {
            int energie, cost;
            in>>energie>>cost;
            energieCost('w',index,energie,cost);
        }

        for(int index=0;index<generatoare;index++)
        {
           if(energieCost('e',index,0,0)>=energieNecesara) costCurent=energieCost('c',index,0,0);
           if(costCurent<costMinim) costMinim=costCurent;

        }

        costCurent=0;
        for(int index=0;index<generatoare;index++)
        {
            long int sumaEnergie(0);
            sumaEnergie+=energieCost('e',index,0,0);
            costCurent+=energieCost('c',index,0,0);
            if(energieNecesara<=sumaEnergie && costCurent<=costMinim) costMinim=costCurent;
            if(energieNecesara>sumaEnergie && index==generatoare-1) costMinim=-1;
        }

        afisare(costMinim);
    }

    int energieCost(char mod, int index, int energie, int cost)
    {
        int date[1001][2];
        if(mod=='w') {date[index][0]=energie; date[index][1]=cost; return 0;}
        if(mod=='e') {return date[index][0];}
        if(mod=='c') {return date[index][1];}
    }

    void afisare(int afiseaza)
    {
        out<<afiseaza;
    }