有n把扶手椅,从左到右编号为1到n。 有些扶手椅被人占用(每个扶手椅最多一个人),其他的则没有。 已占用扶手椅数不大于n/2。
出于某些原因,你想让人们从他们的扶手椅移到其他的椅子上。 如果第i个扶手椅被某人占用而第j个扶手椅没有被占用,您可以告诉坐在第i个扶手椅上的人移到第j个扶手椅上。 一个人从第i个扶手椅移动到第j个扶手椅所需要的时间是|i−j|分钟。 您可以执行这个操作任意次数,但这些操作必须顺序执行,即: 在上一个操作中,您要求移动的人已经移动到他们的目标扶手椅上,否则您不能告诉此人移动。
你想要实现以下情况:每个最初被占用的座位必须是空闲的。 你需要做这件事的最少时间是多少?
第一行包含一个整数n(2≤n≤5000)—扶手椅的数量。
第二行包含n个整数a1,a2,…,an(0≤ai≤1)。 ai =1表示第i个扶手椅最初被占用,ai =0表示它最初没有被占用。 占用扶手椅的数量最多为n/2。
例如:输入如下:
样例1:
7
1 0 0 1 0 0 1
样例2:
6
1 1 1 0 0 0
样例3:
5
0 0 0 0 0
一个整数,你必须花最少的时间达到以下情况:最初被占用的座位必须都是空的。
样例1的输出:
3
样例2的输出:
9
样例3的输出:
0
请注意:
在第一个测试中,您可以执行以下顺序:
让一个人从扶手椅1移动到扶手椅2,需要1分钟;
让一个人从扶手椅7移到扶手椅6,需要1分钟;
让一个人从扶手椅4移动到扶手椅5,需要1分钟。
在第二次测试中,可以执行如下顺序:
让一个人从扶手椅1移到扶手椅4,需要3分钟;
让一个人从扶手椅2移到扶手椅6,需要4分钟;
让一个人从扶手椅4移动到扶手椅5,需要1分钟;
让一个人从扶手椅3移动到扶手椅4,需要1分钟。
在第三个测试中,没有座位被占用,所以你的目标立即实现。