На каждом 3-м километре кольцевой автодороги с двусторонним движением установлены контейнеры для мусора. Длина кольцевой автодороги равна 3N километров. Нулевой километр и 3N-й километр автодороги находятся в одной точке. Известно количество мусора, которое накапливается ежедневно в каждом из контейнеров. Из каждого пункта мусор вывозит отдельный мусоровоз. Стоимость доставки мусора вычисляется как произведение количества мусора на расстояние от пункта до центра переработки. Центр переработки отходов открыли в одном из пунктов сбора мусора таким образом, чтобы общая стоимость доставки мусора из всех пунктов в этот центр была минимальной.
Определите минимальные расходы на доставку мусора в центр переработки отходов.
Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит число N (1 ≤ N ≤ 10 000 000) — количество пунктов сбора мусора на кольцевой автодороге. В каждой из следующих N строк находится число — количество мусора в контейнере (все числа натуральные, количество мусора в каждом пункте не превышает 1000). Числа указаны в порядке расположения контейнеров на автомагистрали, начиная с первого километра.
В ответе укажите два числа: сначала значение искомой величины для файла А, затем — для файла B.
Типовой пример организации данных во входном файле:
6
8
20
5
13
7
19
При таких исходных данных, если контейнеры установлены на каждом километре автодороги, необходимо открыть центр переработки в пункте 6. В этом случае сумма транспортных затрат составит: 1 · 7 + 0 · 19 + 1 · 8 + 2 · 20 + 3 · 5 + 2 · 13.
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.
Предупреждение: для обработки файла Bне следует использовать переборный алгоритм, вычисляющий сумму для всех возможных вариантов, поскольку написанная по такому алгоритму программа будет выполняться слишком долго.
Сначала считаем количество чисел в файле, затем считаем все числа в массив elems. Поскольку контейнеры для мусора располагаются на каждом третьем километре автодороги, утроим каждый элемент массива. Далее для первого числа, считая его серединой, найдём сумму всех чисел справа от него (rightSum) и сумму всех чисел слева от него (leftSum) (учитываем, что дорога кольцевая, в примере из условия числа слева для числа 19 — это 5, 13 и 7, а числа справа — это 8 и 20). Также при этом найдём общую стоимость доставки мусора при условии открытия центра переработки в первом пункте (элементе).
Заметим, что передвигая центр обработки в следующий пункт новая общая сумма будет равна сумме значения общей суммы центра обработки мусора в предыдущем пункте, значения переменной leftSum и значения элемента, в котором размещался центр обработки на предыдущей итерации, при этом из этого числа следует вычесть значение переменной rightSum и значение элемента, в который был передвинут центр обработки мусора. Также после передвижения центра обработки мусора будем обновлять значения переменных leftSum и rightSum. Все найденные подсуммы будем записывать в массив answers. Минимальное значение в получившемся в итоге массиве answers и будет ответом.