Mochila (sin división)

📖
Este algoritmo simplemente buscará la mejor solución con fuerza bruta para el problema de la mochila si división de elementos
ℹ️
Este algorimo consite en ir añadiendo elementos a la solución antes de la llamada recursiva e ir borrandolos al salir
⚠️
La implementación de este algoritmo puede variar un poco si se pueden repetir elementos. Para ello, en la llamada recursiva deberemos no sumar 1 a la i (leer el comentario en las primeras líneas del código )
"""
    Knapsack problem with backtracking
    - No half items
    
    [i] To allow repeated items, replace "i+1" with "i" on line 27 (