Advertisement
Guest User

Untitled

a guest
Mar 13th, 2023
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. def nearest_zero_right(street_length, street_num):
  2. distances = None # Будет None, пока не найдём 0
  3. resultes = [None] * street_length
  4. for x in range(street_length):
  5. n = street_num[x]
  6. if n == 0:
  7. distances = x
  8. else: #Иначе
  9. if distances is not None: # Ноль найден, будем искать дистанцию
  10. resultes[x] = distances
  11. return resultes
  12.  
  13. def nearest_zero_left(street_length, street_num, resultes):
  14. distances = None
  15. for x in reversed(range(street_length)):
  16. n = street_num[x]
  17. if n == 0:
  18. distances = x
  19. else: # Иначе
  20. if distances is not None:
  21. if resultes[x] is None or distances is not None and resultes[x] > distances:
  22. resultes[x] = distances
  23. return resultes
  24.  
  25. if __name__ == "__main__":
  26. with open('input.txt', 'r') as fr:
  27. street_length = int(fr.readline())
  28. street_num = [int(item) for item in fr.readline().split()]
  29.  
  30. # прямая обработка
  31. resultes = nearest_zero_right(street_length, street_num)
  32. # теперь обратная обработка.
  33. resultes = nearest_zero_left(street_length, street_num, resultes)
  34.  
  35. print(*resultes)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement