Hay un virus dentro de un receptor de 5x5. Como sabemos cómo propaga su contaminación, su misión es generar la última etapa de la contaminación.
El recipiente
Se representará como una matriz bidimensional 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
Donde 1
significa una posición donde el virus ya se ha contaminado, y0
una posición no contaminada.
Cómo se propaga el virus
- Una posición contaminada no puede estar limpia.
- Una posición limpia se contaminará en la siguiente etapa solo si al menos dos de sus posiciones adyacentes (celdas norte, este, sur y oeste) están contaminadas.
- La última etapa de la contaminación ocurre cuando no se pueden contaminar más células limpias.
Muestra
Utilizando como la etapa 1 de la contaminación el receptor descrito anteriormente, la etapa 2 será:
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
La etapa 3 de la contaminación será:
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
La etapa 4 de la contaminación será:
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
Y la etapa 5 (en este ejemplo, la última) será:
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
Desafío
Dada como entrada una etapa de la contaminación, debe dar salida a la última etapa de la contaminación.
Se le permite escribir un programa completo o una función. Puede tomar la entrada como matriz / lista, como números separados o incluso como cadena. Elige la mejor manera que se adapte a tu idioma.
¡La respuesta más corta en bytes gana!
Otros casos de prueba
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
como un caso de prueba?
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
, que se mantiene sin cambios.
1 0 1
ocurrir en la salida? ¿No es el centro cero adyacente a dos1
s?