#P4922. 垃圾桶 Ⅱ

垃圾桶 Ⅱ

题目描述

一条很长的街道上有 NN 个房子。第一个房子在位置 11,第二个房子在位置 22,以此类推。任意一对房子 iijj 之间的距离为 ij|i-j|

一些房子的位置处有垃圾桶。每个房子的主人都要倒垃圾。如果自己房子前面有垃圾桶,则无需移动,直接倒垃圾即可。如果自己房子前面没有垃圾桶,则前往距离自己最近的垃圾桶处倒垃圾,如果这样的垃圾桶不唯一,则任意前往一个即可。

请计算,所有房子的主人倒垃圾需要行走的总距离之和。

输入格式

第一行包含一个整数 NN

第二行包含一个长度为 NN0101 字符串,第 ii 个字符若为 1 表示第 ii 个房屋门前有垃圾桶,若为 0 则表示没有。字符串中至少包含一个 1

输出格式

输出一个整数,表示总距离之和。

样例

6
100100
5

样例解释
11 个和第 44 个房子门前有垃圾桶,这两家主人不用移动。
22 个房子的主人去第 11 个房子处倒垃圾,行走距离为 11
33 个房子的主人去第 44 个房子处倒垃圾,行走距离为 11
55 个房子的主人去第 44 个房子处倒垃圾,行走距离为 11
66 个房子的主人去第 44 个房子处倒垃圾,行走距离为 22
总距离之和为 1+1+1+2=51+1+1+2=5

数据范围

  • 1N5×1051 \le N \le 5 \times 10^5
  • 字符串长度等于 NN,只包含字符 01,且至少有一个 1