Присоединиться

11 класс·высокий уровень

Необходимо выбрать из последовательности три числа так, чтобы

Условие

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

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

Файл АФайл ВПервая строка входного файла содержит целое число K — параметр для определения расстояния, вторая строка содержит число N — общее количество чисел в наборе (1 < 2K < N). Каждая из следующих N строк содержит одно число, не превышающее по модулю 10⁷.Пример входного файла:26678235Из этого файла в соответствии с условиями можно выбрать числа 7, 8 и 5. Максимальное расстояние в данном случае равно 4 (между числами 7 и 5). Числа 6, 7 и 8 взять нельзя, так как максимальное расстояние в этом случае равно 2, а по условию оно должно быть не меньше 4. В ответе для этого примера надо написать число 20.Вам даны два входных файла (A и B), каждый из которых имеет описанную выше структуру. В ответе укажите два числа: сначала требуемую сумму для файла A, затем — для файла B. Ответ:

Ответ

Ответ и полный разбор откроются после входа

Посмотреть ответ

Решение по шагам

  1. Как рассуждать

    Решение. Приведем решение на языке Pythonk, 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(2k, n): back = max(back, a[i-2*k]) any_mx = max(x for x in b if (b[x] - (a[i] == x) - (back == x)) >

Осталось ещё 1 шаг

  1. m = max(m, back + any_mx + a[i]) print(m)…

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Программирование»