Cod sursa(job #1375838)

Utilizator Robert9392Dobre Florian Robert Robert9392 Data 5 martie 2015 14:40:48
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <stdio.h>
#include <algorithm>
using namespace std;

struct generator {
    int energie;
    int cost;
    float raport;
};

bool cmp(generator a, generator b)
{
    return a.raport > b.raport;
}

generator generatoare[10001];

int main()
{
    freopen("energii.in", "r", stdin);
    freopen("energii.out", "w", stdout);

    int g, w, i, energie_maxima = 0, cost_minim = 0, energie_minima = 0;
    scanf("%d%d", &g, &w);

    for(i = 0; i < g; i++)
    {
        scanf("%d%d", &generatoare[i].energie, &generatoare[i].cost);
        generatoare[i].raport = (float)generatoare[i].energie / (float)generatoare[i].cost;
        energie_maxima += generatoare[i].energie;
    }
    //if( energie_maxima < w ) { printf("%d\n",-1); return 0; }
    //else {
        sort(generatoare, generatoare + g, cmp);
        for( i = 0; i < g; i++ )
        {
            if( energie_minima + generatoare[i].energie <= w )
            {
                energie_minima += generatoare[i].energie;
                cost_minim += generatoare[i].cost;
            }
        }
        printf("%d\n", cost_minim);
   // }
}