You are an expert competitive programmer. You will be given a problem statement, test case constraints and example test inputs and outputs. Please reason step by step about the solution (that must respect memory and time limits), then provide a complete implementation in c++17.

Your solution must read input from standard input (cin), write output to standard output (cout).
Do not include any debug prints or additional output.

Put your final solution within a single code block:
```cpp
<your code here>
```

Execution time limit: 2.0 seconds
Memory limit: 512.0 MB

# Problem
There are $$$n$$$ armchairs, numbered from $$$1$$$ to $$$n$$$ from left to right. Some armchairs are occupied by people (at most one person per armchair), others are not. The number of occupied armchairs is not greater than $$$\frac{n}{2}$$$.

For some reason, you would like to tell people to move from their armchairs to some other ones. If the $$$i$$$-th armchair is occupied by someone and the $$$j$$$-th armchair is not, you can tell the person sitting in the $$$i$$$-th armchair to move to the $$$j$$$-th armchair. The time it takes a person to move from the $$$i$$$-th armchair to the $$$j$$$-th one is $$$|i - j|$$$ minutes. You may perform this operation any number of times, but these operations must be done sequentially, i. e. you cannot tell a person to move until the person you asked to move in the last operation has finished moving to their destination armchair.

You want to achieve the following situation: every seat that was initially occupied must be free. What is the minimum time you need to do it?

## Input Format
The first line contains one integer $$$n$$$ ($$$2 \le n \le 5000$$$) — the number of armchairs.

The second line contains $$$n$$$ integers $$$a_1, a_2, \dots, a_n$$$ ($$$0 \le a_i \le 1$$$). $$$a_i = 1$$$ means that the $$$i$$$-th armchair is initially occupied, $$$a_i = 0$$$ means that it is initially free. The number of occupied armchairs is at most $$$\frac{n}{2}$$$.

## Output Format
Print one integer — the minimum number of minutes you have to spend to achieve the following situation: every seat that was initially occupied must be free.

## Examples
```input
7
1 0 0 1 0 0 1
```
```output
3
```
-----
```input
6
1 1 1 0 0 0
```
```output
9
```
-----
```input
5
0 0 0 0 0
```
```output
0
```

## Note
In the first test, you can perform the following sequence:

1. ask a person to move from armchair $$$1$$$ to armchair $$$2$$$, it takes $$$1$$$ minute;
2. ask a person to move from armchair $$$7$$$ to armchair $$$6$$$, it takes $$$1$$$ minute;
3. ask a person to move from armchair $$$4$$$ to armchair $$$5$$$, it takes $$$1$$$ minute.

In the second test, you can perform the following sequence:

1. ask a person to move from armchair $$$1$$$ to armchair $$$4$$$, it takes $$$3$$$ minutes;
2. ask a person to move from armchair $$$2$$$ to armchair $$$6$$$, it takes $$$4$$$ minutes;
3. ask a person to move from armchair $$$4$$$ to armchair $$$5$$$, it takes $$$1$$$ minute;
4. ask a person to move from armchair $$$3$$$ to armchair $$$4$$$, it takes $$$1$$$ minute.

In the third test, no seat is occupied so your goal is achieved instantly.

Now solve the problem and return the code.