AT_tupc2024_e 010-11 Shorten
Description
長さ $ N $ の `0`, `1`からなる文字列 $ S $ が与えられます。
文字列 $ S $ に対して以下の $ 2 $ 種類の操作を繰り返し行うことができます。
- 操作 $ 1 $ : $ S $ の中の連続部分文字列 `010` を $ 1 $ つ選び、 `1` に置き換える。
- 操作 $ 2 $ : $ S $ の中の連続部分文字列 `11` を $ 1 $ つ選び、 `1` に置き換える。
操作を行うことができる回数の最大値を求めてください。
$ T $ 個のテストケースが与えられるので、それぞれについて答えを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ T $ $ \text{case}_1 $ $ \text{case}_2 $ $ \vdots $ $ \text{case}_T $
それぞれのテストケースは次の形式で与えられる。
> $ N $ $ S $
Output Format
$ T $ 行出力せよ。 $ i=1,2,\dots,T $ に対して $ i $ 行目には $ i $ 番目のテストケースの答えを整数で出力せよ。
Explanation/Hint
### Sample Explanation 1
$ 1 $ つ目のテストケースについて、例えば以下のように $ 3 $ 回の操作を行うことができます。
- `010100` の $ 3 $ から $ 5 $ 文字目の `010` を `1` に置き換え、`0110` にする。
- `0110` の $ 2 $ から $ 3 $ 文字目の `11` を `1` に置き換え、`010` にする。
- `010` の $ 1 $ から $ 3 $ 文字目の `010` を `1` に置き換え、`1` にする。
`010100` に対して $ 4 $ 回以上の操作を行うことはできないため、答えは $ 3 $ となります。
### Constraints
- $ 1 \leq T \leq 10^5 $
- $ 1 \leq N \leq 10^6 $
- $ S $ は `0`, `1` からなる長さ $ N $ の文字列
- $ 1 $ つの入力ファイルに含まれる $ N $ の総和は $ 10^6 $ 以下
- $ T,N $ は整数