CF1525D.Armchairs

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

There are nn armchairs, numbered from 11 to nn 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 n2\frac{n}{2} .

For some reason, you would like to tell people to move from their armchairs to some other ones. If the ii -th armchair is occupied by someone and the jj -th armchair is not, you can tell the person sitting in the ii -th armchair to move to the jj -th armchair. The time it takes a person to move from the ii -th armchair to the jj -th one is ij|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 nn ( 2n50002 \le n \le 5000 ) — the number of armchairs.

The second line contains nn integers a1,a2,,ana_1, a_2, \dots, a_n ( 0ai10 \le a_i \le 1 ). ai=1a_i = 1 means that the ii -th armchair is initially occupied, ai=0a_i = 0 means that it is initially free. The number of occupied armchairs is at most n2\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 11 to armchair 22 , it takes 11 minute;
  2. ask a person to move from armchair 77 to armchair 66 , it takes 11 minute;
  3. ask a person to move from armchair 44 to armchair 55 , it takes 11 minute.

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

  1. ask a person to move from armchair 11 to armchair 44 , it takes 33 minutes;
  2. ask a person to move from armchair 22 to armchair 66 , it takes 44 minutes;
  3. ask a person to move from armchair 44 to armchair 55 , it takes 11 minute;
  4. ask a person to move from armchair 33 to armchair 44 , it takes 11 minute.

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

首页