测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A14353. Armchairs

编程题 普及/提高-

题目描述

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?

输入格式

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}$ .

输出格式

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.

输入输出样例

输入 #1
7
1 0 0 1 0 0 1
输出 #1
3
输入 #2
6
1 1 1 0 0 0
输出 #2
9
输入 #3
5
0 0 0 0 0
输出 #3
0

说明/提示

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.
上一题 去做题 下一题