27

Максимальная чётная сумма

ЕГЭ · Информатика · Задание 27 · Динамическое программирование
ВысокаяФИПИ952F46Короткий ответ≈ 15 минут

Пусть $S$ — последовательность из $N$ целых чисел, пронумерованных подряд начиная с 1. Обозначим $S(L, R)$ подпоследовательность, состоящую из идущих подряд элементов, входящих в $S$, начиная с элемента с номером $L$ и заканчивая элементом с номером $R$ включительно. Требуется найти подпоследовательность $S(L, R)$ максимальной длины, сумма элементов которой положительна и чётна. Гарантируется, что хотя бы одна такая подпоследовательность существует.

Даны два входных файла, файл A и файл B. В первой строке каждого файла содержится число $N$ ($5 \leq N \leq 10\,000\,000$), затем следуют $N$ целых чисел, каждое по модулю не превышает 1000. Для каждого файла определите длину искомой подпоследовательности. Типовой пример из условия является иллюстративным; используйте данные из приложенных файлов.

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

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

Пусть S – последовательность из N целых чисел, пронумерованных подряд начиная с 1. Обозначим S(L, R) подпоследовательность, состоящую из идущих подряд элементов, входящих в S, начиная
с элемента с номером L и заканчивая элементом с номером R включительно.

Требуется найти такую подпоследовательность S(L, R) максимальной длины, что сумма её элементов положительна
и чётна. Гарантируется, что хотя бы одна подпоследовательность требуемого вида существует.

В ответе укажите длину искомой подпоследовательности.

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

Дано два входных файла (файл A и файл B), каждый из которых
в первой строке содержит число N
(5 ≤ N ≤ 10 000 000) – количество целых чисел. Каждая из следующих N строк содержит одно целое число, значение которого по модулю не превышает 1000. В ответе укажите два числа: сначала значение искомой величины для файла А, затем – для файла B.

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

6

–20

–3

8

–4

5

–10

При таких входных данных L = 2, R = 5. Сумма подпоследовательности равна ((–3) + 8 + (–4) + 5) = 6. Ответом является длина этой подпоследовательности, равная 4.

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

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



Ваш ответ

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

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

Рассмотрите суммы на префиксах последовательности и их чётность.

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

Для каждого правого конца подпоследовательности достаточно знать минимальную префиксную сумму подходящей чётности.

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

Поддерживайте первые позиции префиксов с чётной и нечётной суммой, а также минимальные значения таких сумм. Проверяйте, чтобы разность сумм была положительной и чётной.

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

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

Задача из темы «Динамическое программирование»: в ней 72 задачи с ответом и разбором по шагам. В 27-м номере бланка — 49 задач.

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