25

Максимальная сумма осадков

ЕГЭ · Информатика · Задание 25 · Основы программирования
ВысокаяФИПИ5ABB91Короткий ответ≈ 15 минут

По каналу связи передаётся последовательность целых неотрицательных чисел — показания прибора, полученные с интервалом в 1 мин в течение $T$ минут. Определите два переданных числа, чтобы между моментами их передачи прошло не менее $K$ минут, а их сумма была максимально возможной. Даны два входных файла: файл A и файл B. В первой строке каждого файла записано натуральное число $K$, во второй — количество переданных показаний $N$ ($1 \leq N \leq 10\,000\,000$, $N > K$). В следующих $N$ строках записаны значения осадков за соответствующие минуты. Запишите сначала искомую величину для файла A, затем для файла B. Для файла B необходимо использовать алгоритм, не перебирающий все пары показаний.

Условие как в банке ФИПИ — открыть и сверить
Впишите правильный ответ.

Задание выполняется с использованием прилагаемых
файлов.

По каналу связи передаётся последовательность целых неотрицательных чисел – показания прибора, полученные
с интервалом в 1 мин. в течение T мин. (T – целое число). Прибор измеряет количество атмосферных осадков, полученное регистратором за минуту, предшествующую моменту регистрации,
и передаёт это значение в условных единицах измерения.

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

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

Даны два входных файла (файл A и файл B), каждый из которых
в первой строке содержит натуральное число K – количество минут, которое должно пройти между двумя передачами показаний, а во второй – количество переданных показаний N (1 ≤ N ≤ 10 000 000,
N > K). В каждой из следующих N строк находится одно целое неотрицательное число, не превышающее 100 000, обозначающее количество осадков за соответствующую минуту.

Запишите в ответе два числа: сначала значение искомой величины для файла А, затем – для файла B.

Типовой пример организации данных во входном файле

3

5

15

10

200

0

30

При таких исходных данных максимально возможное суммарное количество осадков равно 45 – это сумма осадков, выпавших на первой и пятой минутах.

Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.

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



Ваш ответ

Формат: число или слово без единиц измерения; дробную часть отделяйте запятой.

!
3 уровня: от лёгкого толчка до почти готового решения. Следующий открывается, когда прочитан предыдущий, — чтобы не перепрыгнуть сразу к ответу.
1Мягкая — с чего смотретьуровень 1 из 3

Для текущего показания достаточно рассматривать только те предыдущие элементы, которые находятся не ближе чем на $K$ позиций.

2Наводящая — какие числа считатьуровень 2 из 3

Поддерживайте максимум среди уже доступных элементов: при обработке элемента с индексом $i$ добавляется элемент с индексом $i-K$.

3Прямая — фактически решениеуровень 3 из 3

Для каждого $i \geq K$ вычисляйте сумму $a_i + \max(a_0, a_1, \ldots, a_{i-K})$ и сохраняйте наибольшую сумму.

Всё равно не складывается?Полное решение с обоснованием каждого шага — на отдельной странице.
Открыть решение

Задание 25 ЕГЭ, информатика

Задача из темы «Основы программирования»: в ней 160 задач с ответом и разбором по шагам. В 25-м номере бланка — 216 задач.

Ответ можно проверить здесь же, а если не выходит — открыть подсказку или разбор. Регистрация не нужна.