#P3509. Rotating Rings
Rotating Rings
题目描述
任意一个正方形网格都可以看作是一个或多个同心的环,从外到内依次编号。例如,如图(a)所示,$5 \times 5$ 的网格由三个环组成,编号分别为1、2和3(从外到内)。一个大小为$N$的正方形网格被称为排序好的,如果它包含从$1$到$N^2$的数字,且按行主序(row-major order)排列,如图(b)中$N=4$时所示。我们希望判定,给定的正方形网格是否能仅通过旋转其环来变为排序好的网格。
例如,图(c)所示的网格可以通过将第一层环逆时针旋转两位,第二层环顺时针旋转一位来实现排序。
输入
程序将接收一个或多个测试用例。每个测试用例的第一行包含一个整数$N$,表示网格的大小。随后有$N$行,每行包含$N$个整数,指定网格的元素,按照行主序排列。注意,$0 < N \leq 1000$,网格中的元素为不超过$1,000,000$的自然数。
测试用例以一个虚拟用例结束,即$N=0$。
输出
对于每个测试用例,输出一行,格式如下:
其中,$k$为测试用例编号(从1开始),$result$为"YES"或"NO"(不包含引号)。
输入样例
4
9 5 1 2
13 7 11 3
14 6 10 4
15 16 12 8
3
1 2 3
5 6 7
8 9 4
0
输出样例
1. YES
2. NO
来源
Arab and North Africa 2007