Cod sursa(job #2202249)

Utilizator alex.cojocaruAlex Cojocaru alex.cojocaru Data 8 mai 2018 09:21:22
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <algorithm>
#include <stdio.h>

#define NMAX 5001
#define WMAX 50000001
using namespace std;

int v[ NMAX * 2 ] ;

int main() {

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