308466: CF1525D. Armchairs

Memory Limit:512 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Armchairs

题意翻译

有$n$个位置,每个位置要么是椅子$(0)$,要么是人$(1)$。现在每个人都要找一把椅子坐下,一个人在$i$位置移动到$j$位置的椅子需要花费代价$|i-j|$,问所有人都做到自己的椅子上的最小花费的总代价。输出最小的花费的总代价。

题目描述

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.

Input

题意翻译

有$n$个位置,每个位置要么是椅子$(0)$,要么是人$(1)$。现在每个人都要找一把椅子坐下,一个人在$i$位置移动到$j$位置的椅子需要花费代价$|i-j|$,问所有人都做到自己的椅子上的最小花费的总代价。输出最小的花费的总代价。

加入题单

算法标签: