#CF1700F. 拼图

拼图

拼图

  • 时间限制:5 秒
  • 内存限制:512 MiB

题目描述

有一个 22 行 nn 列的矩阵,每个格子中是 00 或 11。一次操作可以交换两个相邻格子中的数;这里相邻是指两个格子共用一条边。

给定初始矩阵和目标矩阵,请求出把初始矩阵变成目标矩阵所需的最少操作次数。若无法变成目标矩阵,输出 −1-1。

输入格式

第一行一个整数 nn,表示矩阵列数。

接下来两行描述初始矩阵,每行包含 nn 个整数。

最后两行以相同格式描述目标矩阵。

输出格式

若能够得到目标矩阵,输出最少操作次数;否则输出 −1-1。

样例输入 1

5
0 1 0 1 0
1 1 0 0 1
1 0 1 0 1
0 0 1 1 0

样例输出 1

5

样例输入 2

3
1 0 0
0 0 0
0 0 0
0 0 0

样例输出 2

-1

数据范围

1≤n≤2000001\le n\le200000,矩阵元素均为 00 或 11。

子任务编号 分值 特殊限制
1 30 n≤8n\le8
2 n≤60n\le60
3 40 无特殊限制

每个测试点独立计分。