C'è un virus all'interno di un destinatario di 5x5. Poiché sappiamo come si diffonde la sua contaminazione, la tua missione è quella di produrre l'ultimo stadio della contaminazione.
Il destinatario
Sarà rappresentata come una matrice bidimensionale di 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
Dove 1
significa una posizione in cui il virus è già stato contaminato e 0
una posizione non contaminata.
Come si diffonde il virus
- Una posizione contaminata non può essere pulita.
- Una posizione pulita sarà contaminata nella fase successiva solo se almeno due delle sue posizioni adiacenti (celle nord, est, sud e ovest) sono contaminate.
- L'ultima fase della contaminazione si verifica quando non è più possibile contaminare più cellule pulite.
Campione
Usando come fase 1 della contaminazione il destinatario sopra descritto, la fase 2 sarà:
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 fase 3 della contaminazione sarà:
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 fase 4 della contaminazione sarà:
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 la fase 5 (in questo esempio, l'ultima) sarà:
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
Sfida
Dato come input uno stadio della contaminazione, dovresti emettere l'ultimo stadio della contaminazione.
Puoi scrivere un programma completo o una funzione. Puoi prendere l'input come matrice / elenco, come numeri separati o anche come stringa. Scegli il modo migliore che si adatta alla tua lingua.
Vince la risposta più breve in byte!
Un altro caso di 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
come test case?
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
, che rimane invariato.
1 0 1
verificarsi nell'output? Lo zero centrale non è adiacente a due1
s?