Cod sursa(job #1400708)

Utilizator hunisanHunor Csaki hunisan Data 25 martie 2015 13:26:13
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.37 kb
#include <iostream>
#include <fstream>

using namespace std;

struct generator
{
    int w, c;
};
int main()
{
    ifstream be("energii.in");
    ofstream ki("energii.out");

    int g, w;

    be >> g >> w;

    generator asd[g];

    be >> asd[0].w >> asd[0].c;

    for(int i = 1; i < g; i++)
    {
        int wi, ci;
        be >> wi >> ci;

        int optw = wi;
        int optc = ci;

        for(int j = 0; j < i; j++)
        {
            if(optw >= w)
            {
                if(asd[j].w+wi >= w && asd[j].c+ci < optc)
                {
                    optw = asd[j].w+wi;
                    optc = asd[j].c+ci;

                }
            }
            else
            {
                if(asd[j].w+wi >= w)
                {
                    optw = asd[j].w+wi;
                    optc = asd[j].c+ci;
                }
                else
                {
                    optw = asd[j].w+wi;
                    optc = asd[j].c+ci;
                }
            }
        }

        asd[i].w =optw;
        asd[i].c = optc;

    }

    for(int j = 0; j < g; j++)
        cout << asd[j].w << " ";
    cout << endl;

    for(int j = 0; j < g; j++)
        cout << asd[j].c << " ";


    if(asd[g-1].w < w)
    {
        ki << -1;
    }
    else
        ki << asd[g-1].c;

    return 0;
}