Problem5149--硬币

5149: 硬币

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

小 B 面前的桌子上有 $n$ 个硬币,0 表示正面,1 表示反面,只有当这 n 个硬币都是 0 朝上的时候这个他才能把这些钱收起来。
现在他可以一个这样的操作来翻硬币,他选择一个 $x$,把 1 到 x 位置上的硬币都翻面,他现在想知道最少需要多少次操作能使所有硬币正面朝上。

Input

第一行一个整数表示 n。
第二行一个长度为 n 的字符串 s,其中 s 的第 i 个字符 $s_i$ 表示硬币 i 的状态。

Output

输出最小操作次数。

Constraints

对于 $30\%$ 的数据,$1 \leq n \leq 20$
对于另外 $20\%$ 的数据,$s_i$ 全部相等
对于 $100\%$ 的数据,$1 \leq n \leq 10^6$

Sample 1 Input

4
1001

Sample 1 Output

3

Source/Category

C++语法 1.7.字符数组