Cod sursa(job #2395650)

Utilizator teisanumihai84Mihai Teisanu teisanumihai84 Data 2 aprilie 2019 19:15:26
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
using namespace std;
int e[10001], c[10001], n, E, i, j, D[10001], minim;
int main()
{
    ifstream fin ("energii.in");
    ofstream fout ("energii.out");
    fin>>n>>E;
    for (i=1; i<=n; i++)
        fin>>e[i]>>c[i];
    /// punem in D[i] costul minim pentru a obtine  cantitatea de energie i;
    D[0]=0;
    for (i=1; i<=10000; i++)
        D[i]=-1;
    for (i=1; i<=n; i++)
        for (j=10000; j>=0; j--)
            if (D[j]!=-1 && j+e[i]<=10000)
            {

                if (D[j+e[i]]!=-1)
                    D[j+e[i]]=min(D[j+e[i]], D[j]+c[i]);
                else
                    D[j+e[i]]=D[j]+c[i];
            }
    minim=2000000000;
    for (i=10000; i>=E; i--)
        if (D[i]<=minim && D[i]!=-1)
            minim=D[i];
    if (minim==2000000000)
        fout<<-1;
    else
        fout<<minim;
}