Cod sursa(job #2395147)

Utilizator dorel02Dorel Surubelnita dorel02 Data 2 aprilie 2019 11:49:06
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 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[100005]; //costul minim pentru puterea i
int main()
{
    ifstream in ("energii.in");
    ofstream out ("energii.out");

    in>>G;
    in>>W;
    int minim = 1e9;

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

    for(int i = 0; i < 100000; ++i)
        d[i] = -1;

    for(int i = 1; i <= G; ++i)
        for(int j = G; j; --j)
        {
            if(d[j + E[i]] > d[j] + C[i] || d[j + E[i]] == -1)
                if(d[j] != -1)
                    d[j + E[i]] = d[j] + C[i];
        }
    for(int i = W; i <= 100000; i++)
        if(d[i] != -1)
            minim = min(minim, d[i]);

    if(minim == 1e9)
        out<<-1;
    else
        out<<minim;

    return 0;
}