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

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

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

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

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

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

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

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

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

 

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


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

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

Ответ: 68 306

Решение.

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

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

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

Неравенство строгое, поэтому равенство порогу не подходит. Возводим в квадрат сумму всех трёх чисел, а не складываем их квадраты. Для итогового максимума сохраняем саму сумму s, со знаком.

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

Сохраним приложенный текстовый файл под именем 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 == 33)
count = 0
best = None
for i in range(len(a) - 2):
    w = a[i:i + 3]
    s = sum(w)
    if sum(10 <= abs(x) < 100 for x in w) == 2 and s * s < m:
        count += 1
        if best is None or s > best:
            best = s

print(count, best)

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

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

Начальная позицияЭлементыСумма
41-97; -89; 27589
83-83; 448; -92273
308325; 80; -99306

Окно с начальной позицией 308 достигает найденного экстремума. Чисел нужной разрядности 2; (306)² = 93636 < 99033. Таблица иллюстрирует результат; полноту количества и экстремума обеспечивает проверка всех начальных позиций, а не только этих примеров.

Ответ: 68 306.

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

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

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

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

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

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

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