Saltar al contenido

La fiesta de la cuadra

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):
    pass

JavaScript

function fiestaCuadra(pleitos) {
}
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 →