Cod sursa(job #1456037)

Utilizator DysKodeTurturica Razvan DysKode Data 29 iunie 2015 18:23:21
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>

#define INF 200000000

using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");

int E[1010],C[1010],D[5010],i,j,n,eNec,ver;

int main()
{
    fin>>n>>eNec;
    for( i = 1 ; i <= n ; i++ )
    {
        fin>>E[ i ]>>C[ i ];
        ver += E[ i ];
    }

    for( i = 1 ; i <= eNec ; i++ )
        D[ i ] = INF;

    if( ver < eNec )
    {
        fout<<-1;
        return 0;
    }

    for( i = 1 ; i <= n ; i++ )
    {
        for( j = eNec - E[ i ] ; j >= 0 ; j-- )
        {
            if( D[ j + E[ i ] ] > D[ j ] + C[ i ] )
                D[ j + E[ i ] ] = D[ j ] + C[ i ];
        }
    }

    fout<<D[ eNec ];

return 0;
}