D. Жимовик
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Дима ходит в зал, и его любимое упражнение — жим лёжа. У Димы есть план тренировок, согласно которому он должен сделать $$$n$$$ подходов с весами $$$a_1, a_2, \dots, a_n$$$.

В зале есть блины массами: $$$2.5, 5, 10, 20, 40$$$ кг.

Будем считать, что сама штанга волшебная и ее масса равна $$$0$$$.

Чтобы получить на штанге вес $$$A$$$, надо повесить с каждой стороны штанги блины с суммарным весом $$$\frac{A}{2}$$$ кг.

При этом с каждой стороны наборы блинов должны быть:

  • одинаковыми,
  • образовывать неубывающую последовательность,
  • количество блинов на штанге должно быть минимально возможным.

Более формально: Дима хочет подобрать такой вес на штанге, чтобы среди всех наборов блинов, которыми это можно сделать, не существовало набора с меньшим количеством блинов и таким же суммарным весом.

Если Дима хочет получить на штанге вес $$$60$$$ кг, то на каждой стороне нужно набрать: $$$\frac{60}{2} = 30 $$$кг.

Из доступных блинов $$$2.5, 5, 10, 20, 40$$$ это можно сделать, например:

  • $$$20 + 10$$$ — 2 блина,
  • $$$10 + 10 + 10$$$ — 3 блина,
  • $$$20 + 5 + 5$$$ — 3 блина.
Минимальное количество блинов на одну сторону — $$$2$$$, значит подходит набор $$$[20, 10]$$$ (в неубывающем порядке: $$$10, 20$$$).

Подходы выполняются в указанном порядке $$$a_1, a_2, \dots, a_n$$$.

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

Найти минимальную суммарную работу (число снятий $$$+$$$ число надеваний) или определить, что план тренировки невыполним.

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

В первой строке входных данных вводится число $$$n (1 \le n \le 2\cdot10^{5})$$$.

Во второй строке входных данных вводится $$$n$$$ целых чисел — $$$a_i (1 \le a_i \le 10^{9})$$$.

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

Выведите единственное число — минимальную суммарную работу, которую необходимо совершить Диме, чтобы выполнить план тренировки. Если среди весов есть какой-то, который Дима набрать не сможет — выведите $$$-1$$$.

Система оценки

В задаче используется оценка по группам. Баллы за группу начисляются только при прохождении всех тестов группы. Группа тестируется только если все необходимые предыдущие группы были пройдены.

ГруппаОграниченияБаллыЗависимые группы
$$$0$$$Тесты из условия$$$0$$$
$$$1$$$$$$n = 1, 1 \le a_i \le 80$$$$$$8$$$—
$$$2$$$$$$n = 1, 1 \le a_i \le 400$$$$$$12$$$$$$1$$$
$$$3$$$$$$n = 1$$$$$$22$$$$$$1, 2$$$
$$$4$$$$$$1 \le a_i \le 80$$$$$$10$$$$$$1$$$
$$$5$$$$$$1 \le a_i \le 400$$$$$$14$$$$$$1, 2, 4$$$
$$$6$$$Без дополнительных ограничений$$$34$$$$$$0, 1, 2, 3, 4, 5$$$
Примеры
Входные данные
5
10 30 50 55 60
Выходные данные
24
Входные данные
3
10 15 6
Выходные данные
-1