#ARC156A. Non-Adjacent Flip

Non-Adjacent Flip

Non-Adjacent Flip

时间限制:2s
空间限制:1024MB

题目描述

有 NN 枚编号为 11 到 NN 的硬币。长度为 NN 的二进制字符串 SS 描述它们的状态:1 表示正面朝上,0 表示反面朝上。

一次操作可以选择满足 1≤i<j≤N1\le i<j\le N 且 j−i≥2j-i\ge 2 的两个位置,同时翻转这两枚硬币。请判断能否使所有硬币都反面朝上;若可以,求最少操作次数,否则输出 −1-1。

你需要处理 TT 组测试数据。

输入格式

第一行输入整数 TT。

每组数据包含两行:第一行是整数 NN,第二行是长度为 NN 的二进制字符串 SS。

输出格式

对每组数据输出一行答案。

样例输入 1

5
3
101
6
101101
5
11111
6
000000
30
111011100110101100101000000111

样例输出 1

1
2
-1
0
8

数据范围

  • 1≤T≤2×1051\le T\le 2\times 10^5;
  • 3≤N≤2×1053\le N\le 2\times 10^5;
  • SS 是长度为 NN 的二进制字符串;
  • 单个输入文件内所有测试用例的 NN 之和不超过 2×1052\times 10^5。
子任务编号 分值 特殊限制
1 15 每个 SS 都不含子串 11
2 20 每组数据均有 N≤10N\le 10
3 35 每组数据均有 N≤2000N\le 2000
4 30 无特殊限制