На питоне 3.
Дома и магазины
На Новом построили подряд 10 зданий. Каждое здание может быть либо жилым домом, либо магазином, либо офисным зданием.
Но оказалось, что жителям некоторых домов на Новом слишком далеко приходится идти до ближайшего магазина. Для разработки плана развития общественного транспорта на Новом мэр города по вас выяснить, какое же наибольшее расстояние приходится преодолевать жителям Нового чтобы дойти от своего дома до ближайшего магазина.
Входные данные
Программа получает на вход десять чисел, разделенных пробелами. Каждое число задает тип здания на Новом число 1 обозначает жилой дом, число 2 обозначает магазин, число 0 обозначает офисное здание. Гарантируется, что на Новом есть хотя бы один жилой дом и хотя бы один магазин.
Выходные данные
Выведите одно целое число — наибольшее расстояние от дома до ближайшего к нему магазина. Расстояние между двумя соседними домами считается равным 1 (то есть если два дома стоят рядом, то между ними расстояние 1, если между двумя домами есть еще один дом, то расстояние между ними равно 2, и т.д.)
Примеры
Ввод
Вывод
2 0 1 1 0 1 0 2 1 2
3
Перед тем, как перейти к решению задачи, важно понять, что от нас требуется. Мы должны найти наибольшее расстояние, которое приходится преодолевать жителям Нового, чтобы дойти от своего дома до ближайшего магазина.
У нас есть входные данные, представленные в виде десяти чисел, разделенных пробелами. Каждое число обозначает тип здания на Новом: 1 - жилой дом, 2 - магазин, 0 - офисное здание. Гарантируется, что на Новом есть хотя бы один жилой дом и хотя бы один магазин.
Для начала, нам нужно прочитать входные данные. Воспользуемся функцией input() для чтения строки с числами и split() для разделения чисел по пробелам. Затем преобразуем каждое число из строки в целое число с помощью функции int().
```python
input_data = input() # Считываем строку с числами
numbers = input_data.split() # Разделяем строку на числа
buildings = [int(number) for number in numbers] # Преобразуем числа из строки в целые числа
```
Теперь, когда у нас есть список зданий, мы можем начать решать задачу.
Наибольшее расстояние, которое приходится преодолевать жителям Нового до ближайшего магазина, зависит от расстояний между домами и магазинами. Для определения расстояния между двумя домами или между домом и магазином, мы можем использовать переменную distance, которую будем увеличивать на 1 при переходе от одного дома или магазина к другому.
В алгоритме будем использовать переменные max_distance и current_distance. Переменная max_distance будет хранить максимальное расстояние, которое мы найдем, а current_distance будет хранить текущее расстояние, которое нужно преодолеть для достижения следующего дома или магазина.
Пройдемся по списку зданий и проверим каждый элемент. Если мы встречаем дом (число 1) или магазин (число 2), будем обновлять значения переменной current_distance и сравнивать его с max_distance. Если текущее расстояние больше, чем максимальное расстояние, мы обновим max_distance.
```python
max_distance = 0 # Изначально максимальное расстояние равно нулю
current_distance = 0 # Изначально текущее расстояние равно нулю
for building in buildings:
if building == 1 or building == 2: # Если встретили дом или магазин
current_distance += 1 # Увеличиваем текущее расстояние на 1
if current_distance > max_distance: # Проверяем, является ли текущее расстояние новым максимумом
max_distance = current_distance
else: # Если встретили офисное здание
current_distance = 0 # Сбрасываем текущее расстояние до нуля
print(max_distance) # Выводим наибольшее расстояние
```
На выходе мы получим наибольшее расстояние от дома до ближайшего к нему магазина.
Надеюсь, объяснение было понятным и ты смог понять, как решить эту задачу. Если у тебя есть еще вопросы или что-то не понятно, пожалуйста, сообщи мне. Я готов помочь еще раз.