#P14818. [Bulgarian2016组队赛]superm

[Bulgarian2016组队赛]superm

题目描述

一个 3×33\times 3 的方阵称为魔方阵,如果它填入的是两两不同的正整数,并且每一行、每一列以及两条对角线上的数字之和都相等。这个共同的和称为魔法数。

类似地,若一个这样的 3×33\times 3 方阵中,每一行、每一列以及两条对角线上的数字之积都相等,则称它为超级魔方阵。这个共同的乘积称为超级魔法数。

原题给出了一个超级魔法数为 7408874088 的超级魔方阵示例图。

请编写程序 superm,完成以下任务之一:

  • 构造一个超级魔方阵,使其中心格子的数字等于给定的 KK,并且超级魔法数尽可能小;
  • 或判断这样的方阵不存在。

输入格式

输入一行,包含一个正整数 KK,表示方阵中心格子中的数字。

输出格式

如果不存在解,输出一行:

NO

否则,输出三行,每行三个正整数,用空格分隔,表示一个满足条件的超级魔方阵。

要求:

  • 九个数字必须两两不同;
  • 第二行第二个数必须等于 KK
  • 每一行、每一列以及两条对角线上的乘积都相等;
  • 该共同乘积,即超级魔法数,必须是所有合法方案中最小的。

评分说明

测试点按两两成组打包。只有同一组内两个测试的输出都正确,并且在存在解时给出的超级魔法数为最小可能值,才会获得该组分数。

数据范围

  • K4000000000K \le 4\,000\,000\,000
  • 20%20\% 的测试组中,K10000K \le 10000
  • 40%40\% 的测试组中,K2000000K \le 2000000

样例

输入

42

输出

21 28 126
252 42 7
14 63 84

样例说明

上述方阵中,每一行、每一列以及两条对角线的乘积都为 7408874088