Saltar al contenido

Los votos de la Hansa

Enunciado

En Lübeck, en 1370, las ciudades de la Liga Hanseática se reúnen para decidir si le cierran los puertos a un rey. No todas pesan igual: cada ciudad trae cierto número de votos, y la propuesta pasa si las que votan a favor juntan al menos la cuota. Hinrich, el escribano, sospecha que tener más votos no siempre da más poder, y quiere medir cuántas veces el voto de cada ciudad decide.

Recibes votos, una lista de enteros de 1 en adelante, uno por ciudad (puede venir vacía), y cuota, un entero de 1 en adelante. Para cada ciudad, una alianza es cualquier grupo de las otras ciudades, desde ninguna hasta todas; dos ciudades con los mismos votos siguen siendo ciudades distintas. El voto de una ciudad decide en una alianza cuando la alianza sola se queda debajo de la cuota, pero con los votos de esa ciudad junta al menos la cuota.

Regresa una lista de enteros, en el mismo orden que votos: para cada ciudad, en cuántas alianzas de las demás su voto decide.

Con [4, 2, 1] y cuota 4, la primera ciudad decide en las cuatro alianzas de las otras dos (ninguna, la del 2, la del 1 y las dos juntas), porque ninguna llega a 4 sin ella. Las otras dos nunca deciden: sin la primera no llegan, y con la primera ya se llegaba. Regresas [4, 0, 0]. Con [3, 2, 2] y cuota 4, cada ciudad decide en 2 alianzas: regresas [2, 2, 2].

Ejemplos

  • El primer ejemplo

    [4, 2, 1], 4 → [4, 0, 0]

  • El segundo ejemplo

    [3, 2, 2], 4 → [2, 2, 2]

  • Votos iguales

    [1, 1, 1], 2 → [2, 2, 2]

  • Mucho voto no siempre es mucho poder

    [5, 4, 3, 1], 7 → [4, 4, 4, 0]

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

Empiezas con esto

Python

def decisivas(votos, cuota):
    pass

JavaScript

function decisivas(votos, cuota) {
}
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 →