Python - Алгоритмы структур данных

Вывод программы такой - пишет wrong answer. Код весь правилен, может со структрурой что то не так. Код тоже скинул на картинке

Код также скинул по ссылке со структурой - https://pastebin.com/QtTQeyxY
Основная ошибка кода — отсутствие увеличения distances на ненулевых значениях.
Помимо этого есть несколько мелких, но не менее значимых ошибок: расстояние для нулевого значения должно быть 0; return в nearest_zero_left стоит в цикле, то есть цикл выполнится ровно один раз; присваивание resultes производится только для ненулевых значений.
Всё это в сумме приводит к совершенно неверному результату.
Вот исправленный вариант:
def nearest_zero_right(street_length, street_num):
distances = None # Будет None, пока не найдём 0
resultes = [None] * street_length
for x in range(street_length):
n = street_num[x]
if n == 0:
distances = 0
else: #Иначе
if distances is not None: # Ноль найден, будем искать дистанцию
distances += 1
resultes[x] = distances
return resultes
def nearest_zero_left(street_length, street_num, resultes):
distances = None
for x in reversed(range(street_length)):
n = street_num[x]
if n == 0:
distances = 0
else: # Иначе
if distances is not None:
distances += 1
if resultes[x] is None or distances is not None and resultes[x] > distances:
resultes[x] = distances
return resultes
with open('input.txt', 'r') as f:
_, arr = f.readline(), list(map(int, f.readline().split()))
zeros = [i for i in range(len(arr)) if arr[i] == 0]
print(*[min(map(lambda x: abs(x - i), zeros)) for i in range(len(arr))])
У тебя вывод программы на правильный вообще не похож. Где он весь правилен?
Проблема в том, что делаешь какую-то ерунду. Тут проще ctrl+a delete и сначала написать