Il y a un virus à l'intérieur d'un destinataire de 5x5. Comme nous savons comment il propage sa contamination, votre mission est de sortir la dernière étape de la contamination.
Le destinataire
Il sera représenté comme un tableau bidimensionnel de 5x5:
0 0 0 0 1
0 0 0 0 1
0 0 0 1 1
0 0 1 1 1
0 1 1 1 1
Où 1
signifie une position où le virus a déjà contaminé et 0
une position non contaminée.
Comment le virus se propage
- Une position contaminée ne peut pas être propre.
- Une position propre ne sera contaminée à l'étape suivante que si au moins deux de ses positions adjacentes (cellules nord, est, sud et ouest) sont contaminées.
- La dernière étape de la contamination se produit lorsqu'aucune cellule plus propre ne peut être contaminée.
Échantillon
En utilisant comme étape 1 de la contamination le receveur décrit ci-dessus, l'étape 2 sera:
0 0 0 0 1
0 0 0 1 1
0 0 1 1 1
0 1 1 1 1
0 1 1 1 1
L'étape 3 de la contamination sera:
0 0 0 1 1
0 0 1 1 1
0 1 1 1 1
0 1 1 1 1
0 1 1 1 1
L'étape 4 de la contamination sera:
0 0 1 1 1
0 1 1 1 1
0 1 1 1 1
0 1 1 1 1
0 1 1 1 1
Et l'étape 5 (dans cet exemple, le dernier) sera:
0 1 1 1 1
0 1 1 1 1
0 1 1 1 1
0 1 1 1 1
0 1 1 1 1
Défi
Étant donné en entrée une étape de la contamination, vous devez sortir la dernière étape de la contamination.
Vous êtes autorisé à écrire un programme complet ou une fonction. Vous pouvez prendre l'entrée sous forme de tableau / liste, sous forme de nombres séparés ou même sous forme de chaîne. Choisit la meilleure façon qui convient à votre langue.
La réponse la plus courte en octets gagne!
Un autre cas de test
Input:
1 1 0 0 1
0 0 0 0 0
0 1 0 0 1
0 0 0 0 0
1 0 0 0 1
Output:
1 1 0 0 1
1 1 0 0 1
1 1 0 0 1
1 1 0 0 1
1 1 0 0 1
Input:
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
Output:
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
Input:
1 0 0 1 0
0 0 1 0 1
0 0 0 0 0
1 0 0 0 0
0 0 1 0 0
Output:
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
Input:
0 1 0 0 0
0 0 0 0 1
0 0 1 0 0
1 0 0 0 0
0 0 0 1 0
Output:
0 1 0 0 0
0 0 0 0 1
0 0 1 0 0
1 0 0 0 0
0 0 0 1 0
1 0 0 1 0 \ 0 0 1 0 1 \ 0 0 0 0 0 \ 1 0 0 0 0 \ 0 0 1 0 0
comme cas de test?
0 1 0 0 0 \ 0 0 0 0 1 \ 0 0 1 0 0 \ 1 0 0 0 0 \ 0 0 0 1 0
, qui reste inchangé.
1 0 1
se produire dans la sortie? Le centre zéro n'est-il pas adjacent à deux1
s?