Для решения поставленной задачи напишем программу на языке Python. Программа будет осуществлять следующие шаги:
- Считать размер массива N.
- Считать элементы массива.
- Пройти по массиву, определяя длину всех цепочек одинаковых элементов.
- Найти самую длинную цепочку и запомнить значение её элемента и длину.
- Вывести результат.
Ниже приведён пример реализации программы:
def find_longest_chain(arr):
max_value = arr[0]
max_length = 1
current_value = arr[0]
current_length = 1
for i in range(1, len(arr)):
if arr[i] == current_value:
current_length += 1
else:
if current_length > max_length:
max_length = current_length
max_value = current_value
current_value = arr[i]
current_length = 1
if current_length > max_length:
max_length = current_length
max_value = current_value
return max_value, max_length
def main():
import sys
input = sys.stdin.read
data = input().split()
N = int(data[0])
arr = list(map(int, data[1:N+1]))
element, length = find_longest_chain(arr)
print(element, length)
if __name__ == "__main__":
main()
Пояснение кода:
Функция find_longest_chain(arr)
:
- Принимает на вход массив
arr
.
- Инициализирует
max_value
и max_length
для хранения данных о самой длинной цепочке.
- Проходит по массиву, сохраняя текущую цепочку одинаковых элементов.
- Если текущая цепочка заканчивается и её длина больше, чем максимальная найденная ранее, обновляет
max_value
и max_length
.
- В конце дополнительная проверка для последней цепочки, которая может быть самой длинной.
Функция main()
:
- Читает входные данные.
- Преобразует данные в список чисел.
- Вызывает функцию
find_longest_chain
и выводит результат.
Пример работы программы:
Вход:
10
1 2 2 2 3 3 4 4 4 4
Выход:
4 4
В данном примере программа правильно определяет, что самой длинной цепочкой является цепочка из четырёх четвёрок, и выводит её значение и длину.