Бесплатное занятие с репетитором 1 на 1! Оценим уровень знаний, разберём тему,
сформируем план подготовки к ЕГЭ. Запишись через тг-бот

осталось мест 52
Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Тренировки Пробники Статистика Карточки Учебник Об экзамене Учительская
  • Тренажёр заданий ЕГЭ
  • Тренажёр ЕГЭ по Информатике
  • Список заданий №26
  • Задание №26
  • Задание №11025 ЕГЭ Информатике

    Условие задания #11025

    №26 по КИМ

    В текстовом файле записан набор натуральных чисел, не превышающих 109. Гарантируется, что все числа различны. Необходимо определить, сколько в наборе таких пар чётных чисел, что их среднее арифметическое тоже присутствует в файле, и чему равно наибольшее из средних арифметических таких пар.

    Входные данные.

     

    Задание 26

     

    Первая строка входного файла содержит целое число N — общее количество чисел в наборе. Каждая из следующих N строк содержит одно число.

    В ответе запишите два целых числа: сначала количество пар, затем наибольшее среднее арифметическое.

    Пример входного файла:

    6

    3

    8

    14

    11

    2

    17

    В данном случае есть две подходящие пары: 8 и 14 (среднее арифметическое 11), 14 и 2 (среднее арифметическое 8). В ответе надо записать числа 2 и 11.

    Ответ

    Ответ:

    Решение

    Считаем числа из файла в массив, после чего отсортируем его. Для поиска среднего значения двух чётных чисел из массива будем использовать бинарный поиск. Для этого создадим специальную функцию, которая будет возвращать значение True, если в массиве будет найдено искомое значение. В этом случае в переменной count будем накапливать единицу. Также в переменную maxSredn будем записывать максимальное найденное значение, удовлетворяющее условиям.

     

    Приведём решение на языке Python.

     

    f = open('26.txt')
    k = f.readlines()
    n = list(map(int, k))
    m = 0
    s = 0
    c = 0
    ns = set(n)
    for i in range(1, len(n) - 1):
        for j in range(i + 1, len(n)):
            if n[i] % 2 == 0 and n[j] % 2 == 0:
                s = (n[i] + n[j]) // 2
                if s in ns:
                    c += 1
                    m = max(s, m)
    print(c, m)

     

    В результате работы данного алгоритма при вводе данных из файла в условии получаем ответ — 15 976339247.

     

    Понятно ли решение?

    Решения от учеников
    0

    Похожие задания

    15
    Задание №52585Задание №46720Задание №46721Задание №46752Задание №2595Задание №2602Задание №2601Задание №56113Задание №11023Задание №11022Задание №11021Задание №11026Задание №11025Задание №51424Задание №56118
    Бесплатно

    Решай задачи ЕГЭ в приложении

    Скачивай наш Тренажер ЕГЭ на iPhone или Android и тренируйся в любое время и в любом месте!

    Саша — ассистент в телеграмме