Cod sursa(job #2063172)

Utilizator dey44andIoja Andrei-Iosif dey44and Data 11 noiembrie 2017 10:01:47
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.25 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int numar_gen, cant_rep;
int cant_en[1005], cost_en[1005];
float eficient[1005];

void Read()
{
    in >> numar_gen >> cant_rep;
    for(int i=1; i<=numar_gen; i++)
       {
           in >> cant_en[i] >> cost_en[i];
           eficient[i]=(float)cant_en[i]/cost_en[i];
       }
}

void Sortare()
{
    bool sortat;
    while(!sortat)
    {
        sortat=true;
        for(int i=1; i<numar_gen; i++)
            if(eficient[i]<eficient[i+1])
            {
                int aux1 = eficient[i];
                eficient[i] = eficient[i+1];
                eficient[i+1] = aux1;
                int aux2 = cost_en[i];
                cost_en[i] = cost_en[i+1];
                cost_en[i+1] = aux2;
                sortat=false;
            }
    }
}

void Rezolvare()
{
    int en_necesara=0;
    for(int i=1; i<=numar_gen; i++)
        {
            en_necesara+=cost_en[i];
            if(en_necesara>=cant_rep) break;
        }
    if(en_necesara<cant_rep)
        out << -1;
    else
        out << en_necesara;
}

int main()
{
    Read();
    Sortare();
    Rezolvare();
    return 0;
}