Cod sursa(job #2394682)

Utilizator dorel02Dorel Surubelnita dorel02 Data 1 aprilie 2019 20:04:30
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>

using namespace std;
int G;          //nr generatoare
int W;          //cant min de energie

int E[1005];    //energia produsa de generatoru i
int C[1005];    //costu pornirii generatorului i

int d[1005][1005]; //d[i][j] = energia produsa de minim i generatoare cu costul maxim j
int main()
{
    ifstream in ("energii.in");
    ofstream out ("energii.out");

    in>>G;
    in>>W;

    int cost_total = 0;
    for(int i = 1; i <= G; ++i)
    {
        in>>E[i]>>C[i];
        cost_total += C[i];
    }

    for(int i = 2; i <= G; ++i)
        for(int j = 0; j <= cost_total; ++j)
        {
            d[i][j] = max(d[i - 1][j], d[i][j - C[i]] + E[i]);
            if(d[i][j] >= W)
            {
                out<<j;
                return 0;
            }
        }
    out<<"-1";
    return 0;
}