#P1119. 矩阵

矩阵

矩阵

题目描述

构造一个行数为 nn 列数为 nn 的矩阵,满足以下所有约束条件:

  • 矩阵元素为范围从 112n2n (包括这两个整数)的整数。
  • 112n2n (包括首尾两个整数)的每个整数至少应在矩阵中出现一次。
  • 假设 ai,ja_{i, j} 是第 ii 行和第 jj 列上的元素,那么正好存在一个整数四元组 (x,y,z,w)(x, y, z, w) 这样的元素:
    • 1x<zn1 \le x < z \le n .
    • 1y<wn1 \le y < w \le n .
    • ax,ya_{x, y}ax,wa_{x, w}az,ya_{z, y}az,wa_{z, w} 成对不同。

简单来说 你需要保证你构造的矩阵中 有且只有一个子矩阵四角数字各不相同

输入格式

每个测试文件中只有一个测试用例。

输入的第一行也是唯一一行包含一个整数 nn2n502\leq n\leq 50 ),表示矩阵的大小。( 2n502\leq n\leq 50 ),表示矩阵的大小。

输出格式

如果可以构造这样一个矩阵,首先在一行中输出 "Yes"。然后输出 nn 行,其中 ii 行包含 nn 个整数 ai,1,ai,2,,ai,na_{i, 1}, a_{i, 2}, \cdots, a_{i, n}1ai,j2n1 \le a_{i, j} \le 2n ),用空格隔开,其中 ai,ja_{i, j}ii 行和 jj 列上的元素。如果有多个有效答案,可以输出其中任意一个。

如果无法构建这样一个矩阵,则只需在一行中输出 "No"。

样例 #1

样例输入 #1

2

样例输出 #1

Yes
1 2
3 4