Cod sursa(job #1412531)

Utilizator hunisanHunor Csaki hunisan Data 1 aprilie 2015 12:39:18
Problema Energii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream be("energii.in");
    ofstream ki("energii.out");

    int g, w;

    be >> g >> w;

    int egi, cgi;

    be >> egi >> cgi;

    int a[g][2];

    a[0][0] = egi;
    a[0][1] = cgi;

    int locsi = -1;

    for(int i = 1; i < g; i++)
    {

        be >> egi >> cgi;

        int maxe = egi, maxc = cgi;

        for(int j = 0; j < i; j++)
        {

            if(a[j][0]+egi > maxe && a[j][0] <= w && maxe < w)
            {
                maxe = a[j][0]+ egi;
                maxc = a[j][1]+cgi;
            }
            else if(a[j][0]+egi== maxe && a[j][0] <= w)
            {
                if(a[j][1]+cgi < maxc)
                {
                    maxc = a[j][1]+cgi;
                }
            }
            else if(maxe >= w)
            {
                if(a[j][1]+cgi < maxc)
                {
                    maxe = a[j][0]+egi;
                    maxc = a[j][1]+cgi;
                }
            }
        }

        a[i][0] = maxe;
        a[i][1] = maxc;

        if(maxe >= w)
        {
            if(maxc < locsi || locsi == -1)
                locsi = maxc;
        }

    }


    ki << locsi;


    return 0;
}