Cod sursa(job #2126533)

Utilizator ccsgeorge1Cocis George ccsgeorge1 Data 9 februarie 2018 18:36:22
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <iostream>
#include <fstream>
#define limit 100001
using namespace std;

int G, W, sumacost, sumaenergen, cost[limit], energen[limit], keep;
int main()
{
    ifstream fin ("energie.in");
    ofstream fout ("energie.out");

    fin >> G >> W;
    for (int i = 1; i <= G; i++)
        fin >> energen[i] >> cost[i];

    for (int i = 1; i < G; i++)
        for (int j = i + 1; j <= G; j++)
            if (cost[i] > cost[j])
            {
                int var;
                var=cost[i];
                cost[i]=cost[j];
                cost[j]=var;
                var=energen[i];
                energen[i]=energen[j];
                energen[j]=var;
            }

    for (int i = 1; i <= G; i++)
    {
        sumacost+=cost[i];
        sumaenergen+=energen[i];
        if (sumaenergen >= W)
        {
            keep=i-1;
            break;
        }
    }
    if (sumaenergen < W)
    {
        fout<<"-1";
        return 0;
    }
    for (int i = keep; i >= 1; i--)
        if (sumaenergen-energen[i] >= W)
        {
            sumaenergen-=energen[i];
            sumacost-=cost[i];
        }
    fout<<sumacost;
    return 0;
}