Задание EGEINF446B6B: Пары и тройки в числовых данных

ФИПИ · ЕГЭ · все форматы ответа · 2475 заданий

Открыть решение ↓ Ошибка или пожелание

Тип задачи: Пары и тройки в числовых данных.

Учебные темы: Массивы и последовательности чисел. Вычисление обобщённых характеристик элементов массива или числовой последовательности (суммы, произведения, среднего арифметического, минимального и максимального элементов, количества элементов, удовлетворяющих заданному условию). Линейный поиск заданного значения в массиве. Алгоритмы работы с элементами массива с однократным просмотром массива. Сортировка одномерного массива. Простые методы сортировки (метод пузырька, метод выбора, сортировка вставками). Сортировка слиянием. Быстрая сортировка массива (алгоритм QuickSort). Двоичный поиск в отсортированном массиве.

Впишите правильный ответ.

Рисунок из условия ФИПИ

Задание выполняется с использованием прилагаемых файлов.

В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от –100 000 до 100 000 включительно. Определите количество троек элементов последовательности, в которых только одно из чисел является трёхзначным, а сумма элементов тройки меньше максимального элемента последовательности, оканчивающегося на 17. В ответе запишите количество найденных троек чисел, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.

 

Скачать файл задания (TXT, ФИПИ)


i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.10 Массивы и последовательности чисел. Вычисление обобщённых характеристик элементов массива или числовой последовательности (суммы, произведения, среднего арифметического, минимального и максимального элементов, количества элементов, удовлетворяющих заданному условию). Линейный поиск заданного значения в массиве. Алгоритмы работы с элементами массива с однократным просмотром массива. Сортировка одномерного массива. Простые методы сортировки (метод пузырька, метод выбора, сортировка вставками). Сортировка слиянием. Быстрая сортировка массива (алгоритм QuickSort). Двоичный поиск в отсортированном массиве
Тип ответа:Краткий ответ
Номер: 446B6B
НЕ РЕШЕНО Ответить

Решение задания EGEINF446B6B

Ответ: 2781 85899

Решение.

В файле 6655 чисел, каждое записано в отдельной строке. Первое число — элемент последовательности, а не её длина. Рассматриваем только соседние тройки, сохраняя исходный порядок. Всего начальных позиций 6655 − 2 = 6653; соседние окна могут пересекаться.

Сначала среди всех чисел, запись которых оканчивается на 17, находим наибольшее. Условие окончания: остаток от деления |x| на 100 равен 17. Получаем m = 85917. Максимум выбирается из самих чисел x, со знаком; модуль используется только для проверки цифр.

Число содержит 3 цифры в записи модуля тогда и только тогда, когда 100 ≤ |x| < 1000. Знак минуса не считается цифрой. В каждой тройке подсчитываем такие элементы; требуется ровно 1. Затем для суммы s проверяем s < m.

Неравенство строгое, поэтому равенство порогу не подходит.

Для каждого подходящего окна увеличиваем счётчик на 1 и обновляем максимальную сумму. Перебор идёт по начальным позициям от 1 до 6653 включительно; ни одна допустимая соседняя тройка не пропускается и не проверяется дважды.

Сохраним приложенный текстовый файл под именем data.txt рядом с программой. Программа на Python:

with open("data.txt", encoding="utf-8-sig") as f:
    a = [int(x) for x in f.read().split()]

m = max(x for x in a if abs(x) % 100 == 17)
count = 0
best = None
for i in range(len(a) - 2):
    w = a[i:i + 3]
    s = sum(w)
    if sum(100 <= abs(x) < 1000 for x in w) == 1 and s < m:
        count += 1
        if best is None or s > best:
            best = s

print(count, best)

Начальное best = None означает отсутствие найденного окна. Ноль не используется как искусственная начальная граница: реальные суммы могут иметь любой разрешённый условием знак. В данном файле подходящие окна существуют. Данные читаются за линейное время; основной цикл имеет постоянный размер окна, поэтому вся работа занимает O(n), память списка — O(n).

Проверка результата. Полный проход даёт 2781 подходящих окон. Максимальная сумма равна 85899. Контрольные окна с позициями, отсчитываемыми от 1:

Начальная позицияЭлементыСумма
6-83; -3478; 718-2843
7-3478; 718; -96-2856
6569-81; 613; 8536785899

Окно с начальной позицией 6569 достигает найденного экстремума. Чисел нужной разрядности 1; 85899 < 85917. Таблица иллюстрирует результат; полноту количества и экстремума обеспечивает проверка всех начальных позиций, а не только этих примеров.

Ответ: 2781 85899.

Помочь улучшить сайт

Напишите пожелание к сайту или решению либо сообщите о найденной неточности в задании EGEINF446B6B.

Сообщение увидит только команда сайта: на странице оно не публикуется.

Комментарии к решению

Комментарии видны всем посетителям сайта.

Комментариев пока нет. Будьте первым.

Чтобы оставить комментарий, войдите или зарегистрируйтесь.