Saltar al contenido

Miel a medias

Enunciado

Las hermanas Rosa y Lidia Paredes cuidan las colmenas que les dejó su abuelo. Al final de la cosecha se reparten los panales, pero un panal no se parte: cada uno se va entero con una hermana o con la otra. Las dos quieren llevarse un peso lo más parecido posible.

Escribe una función que reciba panales, una lista de enteros positivos con el peso de cada panal (puede venir vacía y puede haber pesos repetidos), y regrese un entero: la menor diferencia posible entre el peso que se lleva Rosa y el que se lleva Lidia. Se reparten todos los panales, y una hermana puede quedarse sin ninguno.

Con [3, 3, 2, 2, 2], Rosa se lleva los dos de 3 y Lidia los tres de 2: 6 contra 6, así que regresa 0. Con [7, 3, 2] lo más parejo es 7 contra 5, y regresa 2. Sin panales, las dos se llevan 0 y la diferencia es 0.

Ejemplos

  • El ejemplo

    [3, 3, 2, 2, 2] → 0

  • Nunca queda parejo

    [7, 3, 2] → 2

  • Un panal pesa más que todos los demás juntos

    [20, 3, 4, 5] → 8

  • Los que se juntan no van seguidos

    [2, 5, 1, 4] → 0

  • No hay panales

    [] → 0

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def menor_diferencia(panales):
    pass

JavaScript

function menorDiferencia(panales) {
}
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.

Más retos de O(2ⁿ)

Ver todos los retos →