[Algoritmo] Mutua esclusione multipla. Non ci riesco...

Per questo avevo chiesto se è previsto si richiudano i contatti e cosa dovrebbe succedere quando si richiudono i contatti.

Come lo farei io:
ad ogni loop, rinnova il vettore con i dati eventualmente giunti, verifica se allarme == true
questo è semplice, basta leggere l'ULTIMO CONTATTO - l'uscita dell'ultimo - , se c'è tensione lì, allora allarme = false quindi basta verificare l'ultimo elemento del vettore
questo automaticamente resetta l'allarme quando il tecnico ha riparato tutto

nel caso di allarme==true vai alla funzione che individua la posizione del guasto, che è quella vista sopra, e restituisce il valore della posizione del guasto, questo automaticamente riposiziona il guasto nel caso di guasti multipli contemporanei quando il tecnico ripara il primo guasto
Se metti il rinnovo vettore come funzione a parte, invece di metterlo nel loop, puoi richiamare questo rinnovo vettore (oltre che dal loop) diverse volte dalla funzione individua posizione fino a quando si stabilizza, così eviti che sullo schermo ti appaia una posizione che cambia a mano a mano che giungono i dati, che a quanto ho visto giungono anche piuttosto lentamente oltre che fuori sequenza.

Otterrai quindi un allarme appena si verifica allarme true e poi, quando si sarà stabilizzato, l'indicazione a video della posizione, così se il tecnico giunge prima del previsto dovrà attendere l'indicazione sullo schermo, se giunge invece "normalmente", troverà l'indicazione già scritta.