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

题目描述

给定一个长度为 n 的 01 序列 S,现在要进行若干次操作,每次操作可以选择一个 ,然后交换 S_i

求最少需要多少次操作能使得最终得到的 01 序列不存在两个相邻位置值都为 1。

若无解则输出 -1。

输入描述:

第一行输入一个正整数  表示该 01 序列的长度。

第二行输入一个仅有字符 '0' 和字符 '1' 组成的字符串表示初始的序列 S

输出描述:

输出一个整数表示使最终 S 不存在相邻的 '1' 所需的最小操作次数,无解输出 -1。
示例1

输入

复制
10
1000110011

输出

复制
2
示例2

输入

复制
4
1110

输出

复制
-1