Максимальное произведение показаний
По каналу связи передаётся последовательность натуральных чисел — показания прибора. В течение $N$ минут ($N$ — натуральное число) прибор ежеминутно регистрирует значение напряжения в электрической сети и передаёт его на сервер.
Определите три таких переданных числа, чтобы между моментами передачи любых двух из них прошло не менее $K$ минут, а произведение этих трёх чисел было максимально возможным. Запишите найденное произведение.
Даны два входных файла — файл A и файл B. В первой строке каждого файла содержится натуральное число $K$ — минимальное количество минут, которое должно пройти между моментами передачи показаний, а во второй — количество переданных показаний $N$ ($1 \leq N \leq 10\,000\,000$, $N > K$). В каждой из следующих $N$ строк находится одно натуральное число, не превышающее $10\,000\,000$, обозначающее значение напряжения в соответствующую минуту.
Для выполнения задания используйте данные из прилагаемых файлов. При обработке файла B нельзя использовать переборный алгоритм, вычисляющий произведение для всех возможных вариантов.
Условие как в банке ФИПИ — открыть и сверить
| ||||||
| | ||||||
Формат: число или слово без единиц измерения; дробную часть отделяйте запятой.
1Мягкая — с чего смотретьуровень 1 из 3
Для каждого выбранного элемента определите, какие элементы могут быть выбраны перед ним с учётом расстояния не менее $K$.
2Наводящая — какие числа считатьуровень 2 из 3
Храните максимальное произведение двух подходящих чисел для каждой позиции, а затем добавляйте к нему очередное число.
3Прямая — фактически решениеуровень 3 из 3
При просмотре элемента с индексом $i$ используйте лучший результат для двух элементов среди позиций не правее $i-K$. Поддерживайте максимум таких результатов префиксными максимумами.
