Saltar al contenido

La balanza de dos platos

Enunciado

Lucía Ferrer, química, pesa sus polvos en una balanza de dos platos con unas cuantas pesas. Pone el polvo en un plato, y cada pesa puede ir en el otro plato, en el mismo plato que el polvo, o quedarse fuera. Cuando la balanza queda nivelada, sabe cuánto pesa el polvo. Quiere saber cuántas cantidades distintas puede medir así.

Escribe una función que reciba pesas, una lista de enteros positivos (puede venir vacía o con valores repetidos). Regresa un entero: cuántas cantidades enteras positivas distintas se pueden medir. Cada pesa se usa a lo más una vez: en el plato de enfrente, en el plato del polvo o en ninguno.

Con [1, 3] mide 1 y 3 con una pesa sola, 4 con las dos juntas, y 2 poniendo la de 3 enfrente y la de 1 junto al polvo, porque 3 = 2 + 1. Regresa 4. Con [2, 5] mide 2, 5, 7 y 3: también 4.

Ejemplos

  • El ejemplo

    [1, 3] → 4

  • Dos pesas que no son consecutivas

    [2, 5] → 4

  • Del 1 al 13 sin huecos

    [1, 3, 9] → 13

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

Empiezas con esto

Python

def pesos_medibles(pesas):
    pass

JavaScript

function pesosMedibles(pesas) {
}
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 →