#P8549. 小挖的核燃料填充

小挖的核燃料填充

题目描述

小挖做 Web 设计的时候,剧情里插入了酷炫的核填充情节!但很可惜,受制于技术,情节对应的游戏竟然是数独……

一开始,会给定你一个有 n×nn\times n,每个宫中有 n×nn \times n 个元素,且早已全部正确填好nn 阶数独。本题中数独游戏的详细表示与玩法见下方 “补充说明”

但小挖会把其中一些宫向左或者向右转 90 度/180 度。比如,若一个宫初始为

087
654
321

那么它向左旋转 9090 度后会变成:

741
852
063

你在恢复数独时,也只能将一些宫向左转 9090,一次旋转算作一步。现在小挖想考考你:如果把操作后的数独重新恢复成合法的数独,最少需要多少步呢?

如果一开始小挖给出的数独局面不可以通过任意次、任意位置的左旋得到,则输出 1-1为什么呢?因为小挖给出的是“自认为完全正确的”数独,但实际不一定。

输入格式

11 行,输入一个正整数 nn

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

输出格式

11 行输出一个整数,表示最小步数 ss

2s+12\sim s+1 行,每行输出两个整数 xi,yix_i,y_i。表示对行号列号为 xi,yix_i,y_i 的宫向左旋转了 9090 度。

数据保证当存在解时,最优解方案唯一。输出时请按如下规则输出:

i<ji<j 表示输出方案时的第 i,ji,j 两步。则:

  • xixjx_i\leq x_j
  • xi=xjx_i= x_j ,则 yiyjy_i\leq y_j

若不存在合法方案,请输出 1-1

3
701210842
832478367
564653501
386648785
457235610
021170423
410702257
327514806
685368341
12
1 1
1 1
1 2
1 3
2 1
2 2
2 3
2 3
3 1
3 1
3 3
3 3
4
36952EA1CF74857C
18E207C9B36D0419
4DAC56BF8209DFE2
B07FD3485AE1BA36
36B5B7CA6E5839FE
A4985620FD32A8B7
01CF94DF1B7C0564
7DE283E14A09C21D
B46D729D0F7246B0
8CF560154BCA159E
1327AB8459D8D278
EA09FC3E6E31A3CF
8E910623C5622B60
320BF7EDB847CDFE
45AF5A18310F183A
6CD7B9C4A9ED7459

17
1 1
1 1
1 2
1 2
1 3
1 3
1 4
2 2
2 3
2 4
3 1
3 2
3 2
3 3
4 1
4 2
4 4

提示

对于 40%40\% 的数据,2n32 \le n\leq 3

对于 100%100\% 的数据,2n42 \le n\leq 4

Hint

nn 阶数独合法的条件:每一行、每一列、每一个粗线宫 (n×n)(n\times n) 内的数字均含 0n210\sim n^2-1,且不重复。

需要注意的是,本题内对于 44 阶数独的表示方式中 >9>9 的数字采用了十六进制表示法。准确来说 A=10\mathrm A=10B=11\mathrm B=11C=12\mathrm C=12D=13\mathrm D=13E=14\mathrm E=14F=15\mathrm F=15