Внутри получателя 5х5 есть вирус. Поскольку мы знаем, как он распространяет свое загрязнение, ваша миссия состоит в том, чтобы вывести последний этап заражения.
Получатель
Он будет представлен в виде двумерного массива 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
Где 1
означает позицию, где вирус уже загрязнен, и 0
позицию, которая не загрязнена.
Как распространяется вирус
- Загрязненное положение не может быть чистым.
- Чистая позиция будет загрязнена на следующей стадии, только если загрязнены как минимум две соседние позиции (север, восток, юг и запад).
- Последняя стадия загрязнения происходит тогда, когда чистые клетки больше не могут быть загрязнены.
Образец
Используя в качестве этапа 1 заражения получателя, описанного выше, этап 2 будет:
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
Этап 3 загрязнения будет:
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
Этап 4 загрязнения будет:
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
И этап 5 (в этом примере, последний) будет:
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
Вызов
Учитывая в качестве входных данных одну стадию загрязнения, вы должны вывести последнюю стадию загрязнения.
Вам разрешено написать полную программу или функцию. Вы можете воспринимать входные данные как массив / список, как отдельные числа или даже как строку. Выбирает лучший способ, который подходит для вашего языка.
Самый короткий ответ в байтах побеждает!
Еще один тест
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
в качестве теста?
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 1
появиться на выходе? Разве центральный ноль не соседствует с двумя1
s?