atcoder#AGC030C. [AGC030C] Coloring Torus

[AGC030C] Coloring Torus

得分 : 10001000

问题陈述

对于一个 n×nn \times n 的网格,记 (r,c)(r, c) 为从上方第 (r+1)(r+1) 行和从左侧第 (c+1)(c+1) 列的方格。
一个使用 KK 种颜色的 良好 上色是指满足以下条件的上色:

  • 每个方格涂上 KK 种颜色中的一种。
  • 所有 KK 种颜色都用于某些方格。
  • KK 种颜色编号为 1,2,...,K1, 2, ..., K。对于任何颜色 iijj (1iK,1jK1 \leq i \leq K, 1 \leq j \leq K),颜色 ii 中的每个方格与颜色 jj 中的相邻方格数量相同。这里,方格 (r,c)(r, c) 的相邻方格为 $((r-1)\; \text{mod}\; n, c), ((r+1)\; \text{mod}\; n, c), (r, (c-1)\; \text{mod}\; n)$ 和 (r,(c+1)  mod  n)(r, (c+1)\; \text{mod}\; n)(如果同一个方格在这四个方格中出现多次,则该方格被计数多次)。

给定 KK,自由选择 nn 在 1 到 500 之间(包括 1 和 500),并构造一个使用 KK 种颜色的 n×nn \times n 网格的良好上色。
可以证明在本问题的约束下始终可以做到这一点。

约束条件

  • 1K10001 \leq K \leq 1000

输入

输入从标准输入以以下格式给出:

KK

输出

输出应采用以下格式:

nn

c0,0c_{0,0} c0,1c_{0,1} ...... c0,n1c_{0,n-1}

c1,0c_{1,0} c1,1c_{1,1} ...... c1,n1c_{1,n-1}

::

cn1,0c_{n-1,0} cn1,1c_{n-1,1} ...... cn1,n1c_{n-1,n-1}

nn 应表示网格的大小,并且必须满足 1n5001 \leq n \leq 500
cr,cc_{r,c} 应为一个整数,满足 1cr,cK1 \leq c_{r,c} \leq K,表示方格 (r,c)(r, c) 的颜色。

2
3
1 1 1
1 1 1
2 2 2
  • 颜色 11 中的每个方格有三个相邻的颜色 11 的方格和一个相邻的颜色 22 的方格。
  • 颜色 22 中的每个方格有两个相邻的颜色 11 的方格和两个相邻的颜色 22 的方格。

输出如下所示的内容将被判定为不正确:

2
1 2
2 2
3
1 1 1
1 1 1
1 1 1
9
3
1 2 3
4 5 6
7 8 9