программа на питоне выдает неверный ответ
решала следующую задачу:
Василию очень нравится клеточный автомат «Game of life», поэтому он решил попробовать придумать что-то подобное. Для простоты, Василий решил определить свой клеточный автомат на массиве из n ячеек, каждый элемент которого может быть в живом или неживом состоянии.
Эволюция массива в клеточном автомате Василия происходит итеративно следующим образом:
Если у неживого элемента есть ровно 1 живой сосед в текущем состоянии массива, то на следующей итерации он станет живым. Соседями для элемента на позиции i являются элементы на позициях i−1 и i+1 , если соседа на такой позиции не существует, то считается, что он мертв. Василий — гуманист, поэтому все живые элементы в его автомате остаются живыми. Смотрите секцию примечание для примеров эволюции.
Вам дано некоторое начальное состояние всех элементов, и вам нужно помочь Василию определить, каким будет состояние массива через m итераций эволюции.
Входные данные
Во входных данных находятся несколько наборов входных данных. В первой строке находится одно целое число t (1≤t≤103 ) — количество наборов входных данных. Далее следуют наборы входных данных.
Первая строка набора входных данных содержит два целых числа n и m (2≤n≤103,1≤m≤109 ) — количество ячеек в массиве и количество итераций.
Вторая строка набора входных данных содержит строку длины n из «0» и «1» — описание начального состояния. «1» обозначает живую клетку, а «0» — неживую.
Гарантируется, что сумма значений n по всем наборам входных данных не превосходит 104 .
Выходные данные
Для каждого набора входных данных выведите строку из n символов «0» и «1» — состояние массива через m итераций эволюции.
Пример
Входные данные
4
11 3
01000000001
10 2
0110100101
5 2
10101
3 100
000
Выходные данные
11111001111
1110111101
10101
000
Написала по ней код, но он выдает неверный ответ, помогите пожалуйста исправить!!! Мой код:
n=int(input())
a=["1"]
b=["0"]
for i in range(n):
kol, it=map(int, input().split(" "))
st=input()
st=st+"0"
st=list(st)
q=[]
for j in range(len(st)):
if j!=0:
if st[0]=="0":
if (st[j-1]=="1" and st[j+1]=="0") or (st[j-1]=="0" and ast[j+1]=="1"):
q.append(a)
else:
q.append(b)
else:
q.append(a)
elif j==0:
if st[j]=="0":
if st[j+1]=="1":
q.append(a)
else:
q.append(b)
else:
q.append(a)
elif j==len(st)-1:
if st[j]=="0":
if st[j-1]=="1":
q.append(a)
else:
q.append(b)
else:
q.append(a)
st=q
q=[]
print(st)
Заранее спасибо за помощь:)