Cod sursa(job #2236223)

Utilizator Radu_FilipescuFilipescu Radu Radu_Filipescu Data 28 august 2018 18:07:19
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#define INF 99999999

using namespace std;

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

int G ,W;
int eg[1002], cg[1002];
int a[5002], b[5002];

int main()
{
  fin >> G >> W;

  for( int i = 1; i <= G; i++ )
    fin >> eg[i] >> cg[i];

  for( int i = 1; i <= W; i++ )
    a[i] = b[i] = INF;

  for( int i = 1; i <= G; i++ )
    {
      for( int j = 1; j <= W; j++ )
        if( j >= eg[i] ) b[j] = min( a[j], a[ j - eg[i] ] + cg[i] );
        else b[j] = min( a[j], cg[i] );

      for( int j = 1; j <= W; j++ ) a[j] = b[j];
    }

  if( a[W] != INF ) fout << a[W] << '\n';
  else fout << "-1" << '\n';

  fin.close();
  fout.close();
    return 0;
}