Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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 = x
- else: #Иначе
- if distances is not None: # Ноль найден, будем искать дистанцию
- 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 = x
- else: # Иначе
- if distances is not None:
- if resultes[x] is None or distances is not None and resultes[x] > distances:
- resultes[x] = distances
- return resultes
- if __name__ == "__main__":
- with open('input.txt', 'r') as fr:
- street_length = int(fr.readline())
- street_num = [int(item) for item in fr.readline().split()]
- # прямая обработка
- resultes = nearest_zero_right(street_length, street_num)
- # теперь обратная обработка.
- resultes = nearest_zero_left(street_length, street_num, resultes)
- print(*resultes)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement