Cod sursa(job #2701004)

Utilizator TghicaGhica Tudor Tghica Data 29 ianuarie 2021 15:44:19
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>

#define NRGEN 1000
#define EMAX 5001
#define INIT NRGEN * EMAX

int v[EMAX + 1];

int main() {
  FILE *fin, *fout;
  int n, w, e, c, i, j;
  fin = fopen( "energii.in", "r" );
  fout = fopen( "energii.out", "w" );
  fscanf( fin, "%d%d", &n, &w );
  for ( i = 1; i <= w; i++ ) {
    v[i] = INIT;
  }
  for ( i = 1; i <= n; i++ ) {
    fscanf( fin, "%d", &e );
    fscanf( fin, "%d", &c );
    for ( j = w; j > e; j-- ) {
      if ( v[j] > v[j - e] + c ) {
        v[j] = v[j - e] + c;
      }
    }
    for ( j = 1; j <= e; j++ ) {
      if ( v[j] > c ) {
        v[j] = c;
      }
    }
  }
  if ( v[w] != INIT ) {
    fprintf( fout, "%d", v[w] );
  }
  else {
    fprintf( fout, "-1" );
  }
  return 0;
}