Cod sursa(job #1746182)

Utilizator jurjstyleJurj Andrei jurjstyle Data 22 august 2016 19:15:19
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>

using namespace std ;

ifstream f ("energii.in") ;
ofstream g ("energii.out") ;

int G , W , EG[1002] , CG[1002] , Cost[1002][5002] ;

int main ()
{
    f >> G >> W ;
    for ( int i = 1 ; i <= G ; ++i )
        f >> EG[i] >> CG[i] ;

//initializam initial costul minim de a obtine energia i cu 0 generatoare infinit
    for ( int i = 1 ; i <= W ; ++i )
        Cost[0][i] = 1e9 ;

    for ( int i = 1 ; i <= G ; ++i )
    {
        for ( int j = W ; j >= 1 ; --j )
        {
         //dorim sa obtinem energia j , folosind primele i generatoare si sa avem cost minim
         //avem de ales intre costul de a obtine energia j din primele i-1 elemente si
         //costul de a obtine energia j-Eg[i] de catre primele i-1 elemente + CG[i] -costul necesar de a produce Eg[i] energie de catre al i-lea generator
         Cost[i][j] = min ( Cost[i-1][j] , Cost[i-1][j-EG[i]] + CG[i] ) ;
        }
    }
 if ( Cost[G][W] != 1e9 )
    g << Cost[G][W] ;
 else
    g << "-1" ;
}