Cod sursa(job #3290321)

Utilizator ana.veronica13Ana Veronica Draghici ana.veronica13 Data 30 martie 2025 12:05:50
Problema Energii Scor 65
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>

using namespace std;

#define MAX_G 1001
#define MAX_E 10001

int e[MAX_G], c[MAX_G], dp[MAX_E][MAX_G];

int main(){
  ifstream cin( "energii.in" );
  ofstream cout( "energii.out" );
  int g, w, i, j, ans;
  cin >> g >> w;
  for( i = 0; i < g; i++ ){
    cin >> e[i] >> c[i];
  }
  for( i = 1; i < MAX_E; i++ ){
    for( j = 0; j <= g; j++ )
      dp[i][j] = 2100000000;
  }
  ans = 2100000000;
  for( i = 1; i < MAX_E; i++ ){
    for( j = 1; j <= g; j++ ){
      if( i >= e[j] )
        dp[i][j] = min( dp[i][j - 1], dp[i - e[j]][j - 1] + c[j] );
      else
        dp[i][j] = dp[i][j - 1];
      if( i >= w && dp[i][j] < ans ){
        ans = dp[i][j];
       // printf( "%d %d %d\n" , i, j, ans);
      }
    }
    //printf( "%d\n" , i);
  }
  if( ans == 2100000000 )
    cout << "-1";
  else
    cout << ans;
  return 0;
}