种树
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

牛牛有 n 块地,这 n 块地排在一条直线上,自左到右编号为 1...n 。牛牛想把这 n 块地全种满树。

如果第 i 块地上有树, 那牛牛就可以从这块地开始种树,但是牛牛只能沿着一个方向走。也就是说,如果牛牛打算在第 块地结束今天的种树之旅,那他只能沿着从 i 块地到 j 块地的方向前进,途中不能回头。到达 j 块地后牛牛就可以回家,然后第二天重新选择一块有树的地开始。

请注意一个地方可以种多棵树。

现在牛牛想知道,最少几天可以让 n 块地全种满树。

输入描述:

第一行一个正整数 ,表示牛牛有 n 块地。
第二行一个长度为 n 的字符串 s,保证,如果 , 则说明第 i 块地有一棵树;否则,第 i 块地没有树。
数据保证至少有一块地有一棵树。

输出描述:

一个整数,表示牛牛把树种满所需要的最小天数。
示例1

输入

复制
7
0111110

输出

复制
2