#CF2140A. 移位排序

移位排序

给定一个长度为 nn二进制字符串 ss(仅由字符 0\texttt{0}1\texttt{1} 组成)。

你可以进行任意次数操作(包括不操作): 选取三个下标满足 1i<j<kn1\le i<j<k\le n,对 si,sj,sks_i,s_j,s_k 进行循环右移循环左移

举例说明: 二进制字符串 110110\texttt{110110}

  1. 选取 i=1,j=2,k=3i=1,j=2,k=3 做循环右移,字符串变为 011110\texttt{011110}
  2. 选取 i=4,j=5,k=6i=4,j=5,k=6 做循环左移,字符串变为 110101\texttt{110101}

求将给定二进制字符串排成非递减有序(所有0\texttt{0}在前、1\texttt{1}在后)所需的最少操作次数


输入格式

多组测试数据。 第一行一个整数 tt1t1001\le t\le 100),表示测试用例组数。

每组测试用例: 第一行输入整数 nn3n1003\le n\le 100),代表字符串长度。 第二行输入长度为 nn 的二进制字符串 ss

输出格式

对每组测试用例,输出一个整数:将字符串排序所需的最少操作次数。


样例输入

4
3
001
4
0110
6
110100
6
101011

样例输出

0
1
2
1

样例说明

  1. 第一组:字符串已经有序,无需操作,答案为 00
  2. 第二组:选取 i=1,j=2,k=4i=1,j=2,k=4 执行一次循环右移,即可变为有序串 0011\texttt{0011},答案为 11

补充术语注释

  • binary string:二进制字符串,仅由 0,1\texttt{0},\texttt{1} 构成
  • cyclically left shift:循环左移
  • cyclically right shift:循环右移
  • sorted binary string:有序二进制串,规范形态为所有0\texttt{0}排在前面,所有1\texttt{1}排在后面