Максимальная сумма разностей
Пусть $S$ — последовательность из $N$ целых чисел, пронумерованных подряд начиная с 1. Обозначим $S_i$, $S_j$, $S_k$ три элемента последовательности $S$, где $i < j < k$. Определите в последовательности $S$ три таких числа $S_i$, $S_j$, $S_k$, что $S_i < S_j$, $S_k < S_j$, и значение выражения $(S_j - S_i) + (S_j - S_k)$ максимально. Гарантируется, что в последовательности есть три числа, удовлетворяющие условию задачи.
Даны два входных файла — файл A и файл B. В первой строке каждого файла содержится число $N$ ($5 \leq N \leq 10\,000\,000$). Каждая из следующих $N$ строк содержит одно целое число, значение которого по модулю не превышает 1000. Используйте данные из прилагаемых файлов.
Условие как в банке ФИПИ — открыть и сверить
| ||||||
| | ||||||
Формат: өлшем бірліктері жоқ сан немесе сөз; бөлшек бөлігін үтірмен бөліңіз.
1Мягкая — с чего смотретьдеңгей 1 из 3
Для каждого среднего элемента $S_j$ нужно независимо максимизировать левую разность $S_j-S_i$ при $i<j$ и правую разность $S_j-S_k$ при $k>j$.
2Жетекші — қандай сандарды есептеудеңгей 2 из 3
Храните минимум среди уже просмотренных элементов слева и минимум среди элементов справа. Для фиксированного $S_j$ значение равно $2S_j - \min(S_i) - \min(S_k)$.
3Тікелей — іс жүзінде шешімдеңгей 3 из 3
Сначала найдите минимум на суффиксе справа от каждой позиции, затем одним проходом слева направо вычисляйте $2S_j - \text{минимум слева} - \text{минимум справа}$ и запоминайте максимум.
