Cod sursa(job #1376065)

Utilizator Robert9392Dobre Florian Robert Robert9392 Data 5 martie 2015 15:47:13
Problema Energii Scor 5
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;
};

generator generatoare[10001];
int vec[1000001];

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

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);
    int j;

    for(i = 1; i <= g; i++)
    {
            scanf("%d%d", &generatoare[i].energie, &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 = 1; i <= g; i++ )
        {
                for(j=1000000; j>=1; j--) {
                    if(vec[j]  != 0)
                        vec[ j + generatoare[i].energie ] += generatoare[i].cost;}

                vec[ generatoare[i].energie ] += generatoare[i].cost;
            }

            for(i=1; i<=10000; i++) printf("%d ", vec[i]);
    }
}