Saltar al contenido

Las rutas del metro

Enunciado

Ximena va en metro de su casa al trabajo y ya se aburrió de hacer siempre el mismo camino. Quiere saber cuántas rutas distintas tiene, para ir variando. Las estaciones se numeran desde 0: su casa está junto a la estación 0 y su trabajo junto a la última.

Escribe una función que reciba conexiones, una lista con una entrada por estación (hay al menos una y a lo más 12): conexiones[i] es la lista de estaciones a las que se llega directo desde la estación i.

Las conexiones siempre van hacia adelante, a una estación con número mayor, así que nunca se regresa, y en una misma lista no se repite ninguna estación. Regresa un entero: cuántas rutas distintas van de la estación 0 a la última. Dos rutas son distintas si la lista de estaciones por las que pasan no es la misma.

Con [[1, 2], [3], [3], []] puede ir por 0, 1, 3 o por 0, 2, 3:

regresa 2. Con [[1, 2, 3], [2, 3], [3], []] hay 4 rutas: 0, 3; 0, 1, 3; 0, 2, 3 y 0, 1, 2, 3. Si no hay manera de llegar, regresa 0. Si solo hay una estación, la casa y el trabajo quedan junto a la misma, y eso cuenta como una ruta: regresa 1.

Ejemplos

  • Dos caminos

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

  • Cuatro rutas

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

  • Una estación sin salida

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

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

Empiezas con esto

Python

def rutas_metro(conexiones):
    pass

JavaScript

function rutasMetro(conexiones) {
}
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 →