#CF1525D. 扶手椅

扶手椅

扶手椅

  • 时间限制:2 秒
  • 内存限制:256 MiB

题目描述

有 nn 把扶手椅,从左到右编号为 11 到 nn。有些扶手椅上坐着人,每把椅子至多坐一个人,其余椅子为空。被占用的椅子数量不超过 n2\frac n2。

你需要让每个人从最初所在的椅子移动到一把最初为空的椅子,并且每把空椅子至多接纳一个人。从第 ii 把椅子移动到第 jj 把椅子需要 ∣i−j∣|i-j| 分钟。所有移动依次完成,总耗时等于每个人移动时间之和。

求使所有最初被占用的椅子变空所需的最少总时间。

输入格式

第一行包含一个整数 nn。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。若 ai=1a_i=1,则第 ii 把椅子最初有人;若 ai=0a_i=0,则它最初为空。

输出格式

输出一个整数,表示所需的最少总时间。

样例输入 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

数据范围

  • 2≤n≤50002\le n\le 5000;
  • ai∈{0,1}a_i\in\{0,1\};
  • 数组中 11 的个数不超过 n2\frac n2。
子任务编号 分值 特殊限制
1 20 n≤10n\le 10
2 40 n≤200n\le 200
3 无特殊限制