from random import randint

nb_interrupteurs = 10
etats_interrupteurs =  [_%2==1 for _ in range(nb_interrupteurs)]
etats_interrupteurs =  [False for _ in range(nb_interrupteurs)]
etats_interrupteurs =  [randint(0,1)==0 for _ in range(nb_interrupteurs)]

commutations = []

print(etats_interrupteurs)

def inverse_interrupteur(n: int):
    global etats_interrupteurs
    global commutations
    #print("On inverse l'interrupteur", n)
    commutations.append(n)
    etats_interrupteurs[n-1] = not etats_interrupteurs[n-1]
    
def islight() -> bool:
    global etats_interrupteurs
    result = True
    for etat_interrupteur in etats_interrupteurs:
        if not etat_interrupteur:
            result = False
            break
    return result

def cherche_commutations(n):
    #print("commute", n)
    if n == 1 and not islight():
        inverse_interrupteur(n)
    elif n > 1 and not islight():
        cherche_commutations(n-1)
        if not islight():
            inverse_interrupteur(n)
            if not islight():
                cherche_commutations(n-1)

cherche_commutations(nb_interrupteurs)
print(etats_interrupteurs)
print(len(commutations))
