B2. Отправьте коробки Алисе (усложнённая версия)
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Это — сложная версия задачи. В ней $$$1 \le n \le 10^6$$$ и $$$0 \leq a_i \leq 10^6$$$. Вы можете взламывать эту версию тогда, когда решите ее (но предыдущую только тогда, когда заблокировали обе версии).

Приближается Рождество, и наш главный герой, Боб, готовит эффектный подарок для своей давней лучшей подруги Алисы. В этом году он решил приготовить $$$n$$$ коробок шоколада, пронумерованных от $$$1$$$ до $$$n$$$. Изначально $$$i$$$-я коробка содержит $$$a_i$$$ кусочков шоколада.

Поскольку Боб — типичный приятный парень, он не отправит Алисе $$$n$$$ пустых ящиков. Другими словами, минимум одно число из $$$a_1, a_2, \ldots, a_n$$$ является положительным. Поскольку Алиса не любит взаимно простые множества, она будет счастлива, только если существует какое-то целое число $$$k > 1$$$, такое, что количество кусочков в каждой коробке делится на $$$k$$$. Обратите внимание, что Алиса не будет возражать, если будут какие-то пустые коробки.

Чарли, парень Алисы, также является вторым лучшим другом Боба, поэтому он решает помочь Бобу, переставляя кусочки шоколада. За одну секунду Чарли может взять кусок в $$$i$$$-й коробке, и поместить его либо в $$$i-1$$$-ю коробку или $$$i+1$$$-ю коробку (если такие коробки существуют). Конечно, он хочет помочь своему другу как можно быстрее. Поэтому он просит вас подсчитать минимальное количество секунд, которое понадобится ему, чтобы сделать Алису счастливой.

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

Первая строка содержит одно целое число $$$n$$$ ($$$1 \le n \le 10^6$$$) — количество коробок шоколада.

Вторая строка содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$0 \le a_i \le 10^6$$$) — количество кусков шоколада в $$$i$$$-й коробке.

Гарантируется, что как минимум одно число среди $$$a_1, a_2, \ldots, a_n$$$ положительное.

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

Если Чарли не может сделать Алису счастливой, выведите $$$-1$$$.

Иначе выведите $$$x$$$ — минимальное количество секунд, которые нужны Чарли, чтобы помочь Бобу сделать Алису счастливой.

Примеры
Входные данные
3
4 8 5
Выходные данные
9
Входные данные
5
3 10 2 1 5
Выходные данные
2
Входные данные
4
0 5 15 10
Выходные данные
0
Входные данные
1
1
Выходные данные
-1
Примечание

В первом примере Чарли может передвинуть все шоколадные кусочки во вторую коробку. Каждая коробка будет делиться на $$$17$$$.

Во втором примере Чарли может передвинуть кусочек из $$$2$$$-й коробки в $$$3$$$-ю и еще один из $$$4$$$-й в $$$5$$$-ю. Каждая коробка делится на $$$3$$$.

В третьем примере каждая коробка уже делится на $$$5$$$.

В четвертом примере Чарли не может ничего сделать, он не может помочь Бобу сделать Алису счастливой.