Учитывая состояние квадратной сетки Игры Жизни, определите, могла ли она эволюционировать из какого-либо предыдущего состояния или могла быть только создана. То есть, определить, является ли штат «райским садом» .
вход
Квадратная сетка состояний, где 1 означает «живой», а 0 - «мертвый». Вы можете выбрать любые два различимых символа вместо 0 и 1, если хотите.
Длина стороны сетки не будет нулевой, но может быть любым натуральным числом 1 <= N <= 20.
Любая или все ячейки вне входной сетки могут быть живы в этом поколении, и любая или все из них, возможно, были живы в предыдущем поколении. Рассматриваемая вселенная бесконечна, поэтому нет граничных условий. Края входа не являются краями вселенной. В частности, сетка не переносится.
Входные данные могут быть в форме строки с разделителями строк или одной строки. Если вы хотите, вы можете взять длину стороны или площадь сетки в качестве дополнительного ввода (до или после сетки).
Допустимые форматы ввода:
010,101,010
010101010
010
101
010
3 010101010
Выход
«Создан», если нет возможного предыдущего состояния (включая состояния, большие, чем входная сетка), которое привело бы к входному состоянию в следующем поколении.
«Развивается», если существует хотя бы одно возможное предыдущее состояние (включая состояния, большие, чем входная сетка), которое привело бы к входному состоянию в следующем поколении.
При желании вы можете использовать любые две различимые строки или числа вместо «Создано» и «Развито».
Обратите внимание, что возможное предыдущее состояние не обязательно должно отличаться от ввода. Если государство имеет себя в качестве следующего поколения, то оно должно рассматриваться как развитое.
Контрольные примеры
010
101
010 Evolved
0101110100
0010101001
1011100110
0101111101
1001001111
1111001001
1011111010
0110011101
1001010100
0010111010 Created
Созданный контрольный пример взят со страницы игры жизни Ахима Фламменкампа .
Заметка
Спасибо Trichoplax за написание этого задания, и я принял его отсюда
m
-by-n
, если я протестирую все возможные2^(m*n)
начальные состояния, сложность программы будет большой, но она решит проблему, просто проверив, соответствует ли результат вводу