РУҚА
25

Решение: Максимальная сумма подпоследовательности

ЕГЭ · Информатика · Задание 25 · Массивы и строки
ВысокаяФИПИ9F4BD8Короткий ответ≈ 15 минутРазбор в 4 шага
Условие

Дана последовательность из $N$ натуральных чисел. Рассматриваются все её непрерывные подпоследовательности, такие что сумма элементов каждой из них кратна $k = 79$. Найдите среди них подпоследовательность с максимальной суммой и определите её длину. Если таких подпоследовательностей найдено несколько, в ответе укажите количество элементов самой короткой из них.

Даны два входных файла (файл А и файл B), каждый из которых содержит в первой строке количество чисел $N$ ($1 \leq N \leq 10\,000\,000$). Каждая из следующих $N$ строк содержит одно натуральное число, не превышающее $10\,000$.

Для обработки файла B не следует использовать переборный алгоритм для всех возможных вариантов, поскольку такая программа будет выполняться слишком долго.

Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

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

4 шага
1

Обозначим через $S_i$ сумму первых $i$ элементов последовательности, причём $S_0 = 0$. Сумма элементов подпоследовательности от $l+1$ до $r$ равна $S_r - S_l$.

2

Эта сумма кратна $79$, если $S_r \bmod 79 = S_l \bmod 79$.

3

Так как все элементы натуральные, префиксные суммы возрастают. Для каждого остатка достаточно сохранять префикс с минимальной суммой: он даёт максимальную сумму подходящей подпоследовательности. При равных максимальных суммах выбирается меньшая длина.

Алгоритм выполняется за $O(N)$ времени и использует $O(79)$ памяти для каждого файла. Однако численные результаты для файлов А и B нельзя определить без самих приложенных файлов.

Ответ

Определить невозможно: содержимое файлов А и B не приложено.

Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.

Где здесь ошибаются

Перебирать все пары границ подпоследовательности.

Сохранять только количество элементов вместо минимальной префиксной суммы для каждого остатка.

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

Закрепить приёмВ теме «Массивы и строки» ещё 237 задач — с ответом и таким же разбором.
Тренироваться

Как решать задание 25 ЕГЭ, информатика

Разбор этой задачи разложен на 4 шага: видно, откуда берётся каждое число и где теряется балл. Ответ приведён рядом с выкладками, а не вместо них.

Задача из темы «Массивы и строки»: в ней 238 задач, и у каждой есть такой же разбор. Регистрация не нужна.