#D1004. 座位の交换

座位の交换

题目背景

nn 把椅子,其中不多于一半有人占着。由 ii 换座到 jj 代价为 abs(ij)abs (i-j)。问所有人都换座到初始没被占的位置代价最小多少?

题目描述

nn 把椅子,从左到右编号为 11nn 。有些椅子上有人(最多有一个人),有些椅子上没有人。有人坐的椅子数量不大于 n2 \frac{n}{2}

你想让人们从自己的椅子上换到其他椅子上。如果第 ii 个椅子上有人,而第 jj 把椅子上没有人,你可以让坐在第 ii 把椅子上的人搬到第 jj 把椅子上。一个人从第 ii 把椅子移动到第 jj 把椅子所需的时间是 ij|i−j| 分钟。

可以多次执行这个操作,但是这些操作必须依次进行。

你希望每个最初被占用的座位都必须空出来。最少需要多长时间才能做到?

输入格式

第一行包含一个整数 nn2n50002 \le n \le 5000 )。表示椅子的数量。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n ( 0ai10 \le a_i \le 1 )。

  • ai=1a_i = 1 表示第 ii 把椅子最初被占用
  • ai=0a_i = 0 表示它最初是空闲的。被占用椅子的数量最多为 n2\frac{n}{2}

输出格式

输出一个整数表示要实现该情况花费的最少分钟数:每个最初被占用的座位都必须是空闲的。

输入输出样例 #1

输入 #1

7
1 0 0 1 0 0 1

输出 #1

3

输入输出样例 #2

输入 #2

6
1 1 1 0 0 0

输出 #2

9

说明/提示

对于50%50\%的数据:n100n \le 100

对于100%100\%的数据:n5×103n\le 5\times 10^3