← К задачам
Тяжело · +5ЕГЭ задание 27Эффективный алгоритм

Задание 27: макс. сумма пары на расстоянии с условием кратности

Задание 27 КЕГЭ требует эффективного алгоритма (за один проход), потому что данных много. Здесь последовательность передаётся списком numbers.

Напишите функцию max_pair_sum_div(numbers, min_dist, divisor), которая возвращает максимальную сумму пары элементов numbers[i] + numbers[j] таких, что:

  • индексы отстоят друг от друга не менее чем на min_dist (то есть j - i >= min_dist, i < j);
  • сумма делится на divisor нацело.

Если подходящей пары нет, верните -1. Решение должно работать за один проход (без перебора всех пар).

Идея: идя по j, поддерживаем для каждого остатка по модулю divisor максимальный «разрешённый» элемент слева (среди индексов i ≤ j − min_dist). Для текущего numbers[j] нужен остаток (-numbers[j]) % divisor.

Формат входа: список целых numbers, целые min_dist (≥ 1) и divisor (≥ 1). Формат выхода: одно целое число — максимальная сумма, или -1.

Пример 1: max_pair_sum_div([1, 5, 3, 9, 2, 6, 4, 8], 3, 3)9. Пример 2: max_pair_sum_div([10, 20, 30, 40, 50], 1, 10)90.

def max_pair_sum_div(numbers, min_dist, divisor):
    # верните максимальную сумму numbers[i]+numbers[j] при j-i>=min_dist
    # и (numbers[i]+numbers[j]) % divisor == 0; если пары нет — -1
    pass
Для запуска тестов необходима авторизация.
Поддержать проект