La fiesta de la cuadra
- O(2ⁿ) · Legendaria
- Plan completo
- Python
- JavaScript
- recursión
- listas
- ciclos
Enunciado
Don Chema organiza la posada de la cuadra y quiere que llegue la mayor cantidad posible de vecinos. El problema son los pleitos: si dos vecinos peleados coinciden en la fiesta, terminan discutiendo. De cada pareja peleada puede invitar a uno de los dos, o a ninguno, pero nunca a los dos. Escribe una función que reciba pleitos, una lista con una entrada por vecino (los vecinos se numeran desde 0 y son a lo más 12): pleitos[i] es la lista de vecinos con los que está peleado el vecino i. Los pleitos van en las dos direcciones: si j aparece en pleitos[i], i aparece en pleitos[j]. Nadie está peleado consigo mismo. Regresa un entero: cuántos vecinos, como máximo, puede invitar sin que coincidan dos peleados.
Con [[1], [0, 2], [1, 3], [2]] los pleitos van en cadena: el 0 con el 1, el 1 con el 2 y el 2 con el 3. Puede invitar al 0 y al 2, o al 0 y al 3, o al 1 y al 3, pero no a tres: regresa 2. Con [[1, 2], [0, 2], [0, 1]] los tres están peleados entre sí y solo puede invitar a uno: regresa 1. Si no hay vecinos, la lista viene vacía y regresa 0.
Ejemplos
Pleitos en cadena
[[1], [0, 2], [1, 3], [2]] → 2
Tres peleados entre sí
[[1, 2], [0, 2], [0, 1]] → 1
Uno está peleado con todos
[[1, 2, 3], [0], [0], [0]] → 3
Nadie está peleado
[[], [], [], [], []] → 5
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def fiesta_cuadra(pleitos):
passJavaScript
function fiestaCuadra(pleitos) {
}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.