// COMPLETA LO QUE FALTA

#include <iostream>
#include <vector>

using namespace std;

/***************************************************************************
 VERSION 1: RECURSIVA, INEFICIENTE
 ***************************************************************************/

float maximoValor(const vector<int>  & peso,
		  const vector<float> & valor,
		  int pesoMaximo) {
   
}


/***************************************************************************
 VERSION 2: RECURSIVA, EFICIENTE
 ***************************************************************************/


/***************************************************************************
 VERSION 3: NO RECURSIVA, EFICIENTE
 ***************************************************************************/


/***************************************************************************
 EJEMPLOS
 ***************************************************************************/

int main () {

   float resultado;

   resultado = maximoValor({100, 40, 50, 80}, {5000, 3600, 4500, 8000}, 100);
   cout << "Primer ejemplo, maximo valor: " << resultado << endl;
   if (resultado == 8100)
      cout << "OK" << endl << endl;
   else
      cout << "MAL" << endl << endl;

   resultado = maximoValor({6, 5, 5}, {8000, 5000, 5000}, 10);
   cout << "Segundo ejemplo, maximo valor: " << resultado << endl;
   if (resultado == 10000) 
      cout << "OK" << endl << endl;
   else
      cout << "MAL" << endl << endl;

   resultado = maximoValor({5, 2, 1, 6, 7}, {1800, 600, 100, 2200, 2800}, 15);
   cout << "Tercer ejemplo, maximo valor: " << resultado << endl;
   if (resultado == 5600)
      cout << "OK" << endl << endl;
   else
      cout << "MAL" << endl << endl;

}