计算使两排石头每列颜色相同的最少交换次数
类型:程序题

有两排石头,每排n颗,从左到右依次排列,每颗石头的颜色为黄色(用1表示)或绿色(用0表示)。每次可以选择第一排的任意一颗石头与第二排的任意一颗石头交换位置。请计算最少需要交换多少次才能使每一列石头的颜色都相同;如果无论交换多少次都无法满足要求,输出-1

示例说明

例如 n = 3 时:

  • 第一排石头颜色:黄、绿、绿(对应数组[1, 0, 0]
  • 第二排石头颜色:绿、绿、黄(对应数组[0, 0, 1]

最少交换次数为2次,一种可行方案如下:

  1. 先交换第一排第3颗石头与第二排第3颗石头;
  2. 再交换第一排第3颗石头与第二排第1颗石头,最终每列颜色均相同。

输入格式

本题包含多组测试数据:

  1. 第一行输入整数 T1 ≤ T ≤ 300),表示测试数据组数。
  2. 每组数据格式如下:
    • 第一行输入整数 n1 ≤ n ≤ 10^4),表示每排石头的数量。
    • 第二行输入 n0/1整数,用空格分隔,表示第一排从左到右的石头颜色(1代表黄色,0代表绿色)。
    • 第三行输入 n0/1整数,用空格分隔,表示第二排从左到右的石头颜色。

输入样例

2
3
1 0 0
0 0 1
5
1 0 1 0 1
0 1 0 1 0

输出样例

2
-1
代码编辑器 加载中...
测试用例(F10) 运行测试(F11) 提交答案(F12)
测试用例输入
{{resultStatus.text}}