#MX2034. T2 翻转(reverse)

T2 翻转(reverse)

Problem Description

小 C 有一个长度为 nn 的 01 串 SS。

小 C 定义一次操作是选择串 SS 的一个后缀将其 01 翻转(0 变成 1,1 变成 0)。

小 C 想要知道最少需要几次操作可以使得串 SS 单调不降(即不存在 1≤i<j≤n1\le i\lt j\le n,满足 Si=1S_i=1,Sj=0S_j=0)。

Input Format

输入的第一行包含一个整数 nn。

接下来一行包含长度为 nn 的 01 串,表示串 SS。

Output Format

输出共一行,包含一个整数,表示最小操作次数。

3
101
2
7
0101010
5

Hint

样例 1 解释

第一次操作:对整个串进行翻转,串 SS 变为 010。

第二次操作:翻转后缀 [3,3][3,3],串 SS 变为 011。

可以证明不存在操作次数更小的解,当然可能存在其他操作次数为 22 的操作方案。

数据规模与约定

  • 对于 30%30\% 的数据,保证 n≤20n\le 20。

  • 对于 60%60\% 的数据,保证 n≤100n\le 100。

  • 对于 100%100\% 的数据,保证 1≤n≤1051\le n\le 10^5。