Cod sursa(job #837367)

Utilizator DorelBarbuBarbu Dorel DorelBarbu Data 17 decembrie 2012 22:07:23
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");

struct generator
{
    int energie;
    int cost;
    float profit;
};
generator v[1002];
bool cmp(generator a, generator b)
{
    if(a.profit<b.profit) return true;
    else return false;
}
int main()
{
    unsigned long long i,nr_gen,e_necesara,e_curenta=0,cost_total=0;
    in>>nr_gen>>e_necesara;
    for(i=1; i<=nr_gen; i++)
    {
        in>>v[i].energie;
        in>>v[i].cost;
        v[i].profit=(float)v[i].cost/v[i].energie;
    }
    sort(v+1, v+nr_gen+1, cmp);
    i=1;
    while(e_curenta<e_necesara && i<=nr_gen)
    {
        cost_total+=v[i].cost;
        e_curenta+=v[i].energie;
        i++;
    }
    if(e_curenta<e_necesara) out<<-1;
    else
    out<<cost_total;
    return 0;
}