Cod sursa(job #1456040)

Utilizator DysKodeTurturica Razvan DysKode Data 29 iunie 2015 18:26:14
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 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 temp;

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 ; j >= 0 ; j-- )
        {
            temp = min( eNec , j + E[ i ] );
            if( D[ temp ] > D[ j ] + C[ i ] )
                D[ temp ] = D[ j ] + C[ i ];
        }
    }

    if( D[ eNec ] != INF )
        fout<<D[ eNec ];
    else
        fout<<-1;

return 0;
}