Таких скидок больше не будет!

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

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

    №0 по КИМ

    Дана последовательность целых чисел. Расстояние между элементами последовательности  — это разность их порядковых номеров. Например, если два элемента стоят в последовательности рядом, расстояние между ними

    равно 1, если два элемента стоят через один  — расстояние равно 2 и т. д.

    Необходимо выбрать из последовательности три числа так, чтобы максимальное расстояние между выбранными числами было не меньше 2K, а их сумма была максимально возможной.

    В ответе запишите найденную сумму

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

    Первая строка входного файла содержит целое число K  — параметр для определения расстояния, вторая строка содержит число N  — общее количество чисел в наборе (1 < 2K < N). Каждая из следующих N строк содержит одно число, не превышающее по модулю 107.

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

    2

    6

    6

    7

    8

    2

    3

    5

    Из этого файла в соответствии с условиями можно выбрать числа 7, 8 и 5. Максимальное расстояние в данном случае равно 4 (между числами 7 и 5). Числа 6, 7 и 8 взять нельзя, так как максимальное расстояние в этом случае равно 2, а по условию оно должно быть не меньше 4. В ответе для этого примера надо написать число 20.

    Вам даны два входных файла (A и B), каждый из которых имеет описанную выше структуру. В ответе укажите два числа: сначала требуемую сумму для файла A, затем  — для файла B.

    27-A.txt

    27-B.txt

    Ответ:

    215226 23922

    Решение

    k, n, *a = map(int, open('27-B.txt'))
    b = {x: a.count(x) for x in sorted(a)[::-1][:3]}
    back = m = float('-inf')
    for i in range(2 * k, n):
    back = max(back, a[i - 2 * k])
    any_mx = max(x for x in b if (b[x] - (a[i] == x) - (back == x)) > 0)
    m = max(m, back + any_mx + a[i])
    print(m)
    Понятно ли решение?

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

    0

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

    15
    Задание №71953Задание №71952Задание №81Задание №20415Задание №71951Задание №104Задание №20414Задание №20416Задание №31793Задание №933Задание №20408Задание №56860Задание №38017Задание №56780Задание №71950
    Бесплатно

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

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

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