В ряд стоят $$$n$$$ кресел, пронумерованных от $$$1$$$ до $$$n$$$ слева направо. Некоторые кресла заняты людьми (не более одного человека на кресло), остальные свободны. Количество занятых мест не превосходит $$$\frac{n}{2}$$$.
По некоторым причинам вы хотите пересадить людей. Если $$$i$$$-е кресло занято, а $$$j$$$-е — нет, вы можете попросить человека, сидящего в $$$i$$$-м кресле, пересесть в $$$j$$$-е кресло. Время, которое потребуется на перемещение из $$$i$$$-го кресла в $$$j$$$-е, равно $$$|i - j|$$$ минутам. Эту операцию можно проводить любое количество раз, но операции должны выполняться последовательно, то есть вы не можете попросить человека пересесть, пока человек, которого вы попросили в предыдущей операции, еще не закончил перемещение.
Вы бы хотели добиться следующей ситуации: все кресла, которые были заняты в самом начале, должны оказаться свободными. За какое минимальное время вы сможете это сделать?
В первой строке задано одно целое число $$$n$$$ ($$$2 \le n \le 5000$$$) — количество кресел.
Во второй строке заданы $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$0 \le a_i \le 1$$$). $$$a_i = 1$$$ означает, что $$$i$$$-е кресло изначально занято, $$$a_i = 0$$$ означает, что это кресло свободно. Количество занятых кресел не превосходит $$$\frac{n}{2}$$$.
Выведите одно целое число — минимальное количество минут, за которое вы можете добиться следующей ситуации: все кресла, которые были заняты в самом начале, должны оказаться свободными.
7 1 0 0 1 0 0 1
3
6 1 1 1 0 0 0
9
5 0 0 0 0 0
0
В первом примере возможна следующая последовательность действий:
Во втором примере возможна следующая последовательность действий:
В третьем примере ни одно место не занято, поэтому вам не надо тратить время.
Название |
---|