P8549 小挖的核燃料填充

题目描述

小挖做 Web 设计的时候,剧情里插入了酷炫的核填充情节!但很可惜,受制于技术,情节对应的游戏竟然是数独…… 一开始,会给定你一个有 $n\times n$ 个**宫**,每个宫中有 $n \times n$ 个元素,且**早已全部正确填好**的 $n$ 阶数独。本题中数独游戏的详细表示与玩法见下方 **“补充说明”** 。 但小挖会把其中**一些宫向左或者向右转 90 度/180 度**。比如,若一个宫初始为 ```cpp 087 654 321 ``` 那么它向左旋转 $90$ 度后会变成: ```cpp 741 852 063 ``` 你在恢复数独时,也**只能将一些宫向左转 $90$ 度**,一次旋转算作一步。现在小挖想考考你:如果把操作后的数独重新恢复成合法的数独,最少需要多少步呢? 如果一开始小挖给出的数独局面不可以通过任意次、任意位置的左旋得到,则输出 $-1$ 。~~为什么呢?因为小挖给出的是“自认为完全正确的”数独,但实际不一定。~~

输入格式

第 $1$ 行,输入一个正整数 $n$。 第 $2\sim n^2+1$ 行,每行输入 $n^2$ 个 $16$ 进制整数,表示一个给定的数独局面,表示小挖操作之后的游戏。

输出格式

第 $1$ 行输出一个整数,表示最小步数 $s$。 第 $2\sim s+1$ 行,每行输出两个整数 $x_i,y_i$。表示对行号列号为 $x_i,y_i$ 的宫向左旋转了 $90$ 度。 数据保证当存在解时,最优解方案唯一。输出时请按如下规则输出: 设 $i

说明/提示

对于 $40\%$ 的数据,$2 \le n\leq 3$。 对于 $100\%$ 的数据,$2 \le n\leq 4$。 ## Hint $n$ 阶数独合法的条件:每一行、每一列、每一个粗线宫 $(n\times n)$ 内的数字均含 $0\sim n^2-1$,且不重复。 需要注意的是,本题内对于 $4$ 阶数独的表示方式中 $>9$ 的数字采用了十六进制表示法。准确来说 $\mathrm A=10$,$\mathrm B=11$,$\mathrm C=12$,$\mathrm D=13$,$\mathrm E=14$,$\mathrm F=15$。