
Вопрос задан 09.03.2025 в 11:53.
Предмет Информатика.
Спрашивает Фирсанова Лиза.
Напишите программу, которая находит в массиве самую длинную цепочку одинаковых элементов. Программа должна вывести значение элемента, который встречается наибольшее число раз подряд, и длину этой цепочки. Если в массиве есть несколько цепочек максимальной длины, нужно вывести данные по первой из них.
Входные данные
Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 3 < N≤ 10000 .
Выходные данные
Программа должна вывести два числа через пробел: значение элемента массива, который встречается наибольшее число раз подряд, и длину этой цепочки.
Ответы на вопрос

Отвечает Асадова Айсель.
Для решения задачи необходимо пройти по массиву и найти самую длинную последовательность одинаковых элементов, которая встречается подряд. Если таких цепочек несколько, нужно вернуть данные по первой из них.
Алгоритм решения:
Инициализация переменных:
- Нам нужно хранить текущий элемент и его количество в подряд идущей цепочке.
- Также нужно запомнить максимальную длину цепочки и значение элемента, который встречается наибольшее количество раз подряд.
Перебор массива:
- Мы будем идти по массиву и сравнивать каждый элемент с предыдущим.
- Если элемент одинаков с предыдущим, увеличиваем счетчик текущей цепочки.
- Если элемент отличается, сравниваем длину текущей цепочки с максимальной и, если нужно, обновляем максимальную цепочку.
- После этого начинаем отсчет новой цепочки с текущего элемента.
После завершения перебора:
- Проверяем последнюю цепочку, так как она может быть самой длинной, и нужно также обновить максимальную длину, если она оказалась самой длинной.
Вывод результата:
- Выводим значение элемента и длину самой длинной цепочки.
Пример кода:
Пояснение к коду:
Входные данные:
- Сначала считываем размер массива
n
. - Затем считываем сам массив
arr
с помощьюmap
иsplit
, чтобы преобразовать строку в список чисел.
- Сначала считываем размер массива
Переменные:
max_value
иmax_length
отвечают за текущие максимальные данные о цепочке.current_value
иcurrent_length
— для отслеживания текущей цепочки одинаковых элементов.
Основной цикл:
- Мы начинаем с первого элемента и проходим по массиву.
- Для каждого элемента сравниваем его с предыдущим:
- Если они одинаковые, увеличиваем счетчик текущей цепочки.
- Если отличаются, проверяем, была ли текущая цепочка длиннее предыдущей максимальной, и если да — обновляем максимальные значения. Затем начинаем новую цепочку с текущего элемента.
После завершения цикла:
- Нам нужно обязательно проверить последнюю цепочку, так как она тоже может быть самой длинной.
Вывод:
- После завершения цикла выводим значения самой длинной цепочки: значение элемента и его длину.
Пример:
Входные данные:
Выходные данные:
Здесь мы видим, что наибольшая цепочка из одинаковых элементов — это троечка "2", которая встречается 3 раза подряд.
Время работы:
- Мы проходим по массиву один раз, то есть время работы алгоритма — O(N), где N — размер массива.
- Это эффективно и подходит для ограничений задачи, где N может быть до 10000.
Похожие вопросы









Топ вопросов за вчера в категории Информатика









Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili