Há um vírus dentro de um destinatário de 5x5. Como sabemos como ele propaga sua contaminação, sua missão é produzir o último estágio da contaminação.
O destinatário
Será representado como uma 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
Onde 1
significa uma posição em que o vírus já está contaminado e 0
uma posição não contaminada.
Como o vírus se propaga
- Uma posição contaminada não pode estar limpa.
- Uma posição limpa será contaminada no estágio seguinte somente se pelo menos duas de suas posições adjacentes (células norte, leste, sul e oeste) estiverem contaminadas.
- O último estágio da contaminação ocorre quando não é possível contaminar mais células limpas.
Amostra
Usando como estágio 1 da contaminação o recipiente descrito acima, o estágio 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
O estágio 3 da contaminação 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
O estágio 4 da contaminação 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
E o estágio 5 (neste exemplo, o último) 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
Desafio
Como entrada em um estágio da contaminação, você deve gerar o último estágio da contaminação.
Você tem permissão para escrever um programa completo ou uma função. Você pode usar a entrada como matriz / lista, como números separados ou mesmo como sequência. Escolhe a melhor maneira que se ajusta ao seu idioma.
A resposta mais curta em bytes vence!
Outros casos de teste
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 um caso de teste?
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 permanece inalterado.
1 0 1
ocorrer na saída? O zero do centro não é adjacente a dois1
s?