Cod sursa(job #2201748)

Utilizator isav_costinVlad Costin Andrei isav_costin Data 5 mai 2018 20:30:51
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <cstdio>

#define MAXW 5000

using namespace std;

int v[MAXW+5];

int main( )
{
  freopen( "energii.in", "r", stdin );
  freopen( "energii.out", "w", stdout );

  int n, w, e, c;

  scanf( "%d%d", &n, &w );

  for( int i=1;i<=w;i++ )
    v[i]=-1;

  for( int i=1;i<=n;i++ )
  {
    scanf( "%d%d", &e, &c );

    for( int j=w;j>=0;j-- )
    {
      if( v[j]!=-1 )
        if( j+e<=w )
        {
          if( v[j+e]==-1 || v[j+e]>c+v[j] )
            v[j+e]=c+v[j];
        }
        else
          if( v[w]>c+v[j] || v[w]==-1 )
            v[w]=c+v[j];
    }
  }

  printf( "%d", v[w] );

  return 0;
}