跳转至

平方和球柱

预估时间限制:0.5 秒。内存限制:128 MB。

实际时限以标准程序在目标评测环境的最慢用例中位时间乘以 \(2\) ,按 \(0.5\) 秒向上取整。参考环境见评测说明。

背景故事

魔法球依次编号为一、二、三,依此类推,每种编号恰好一个。你有若干根柱子,只有当新球与柱顶球的编号之和为完全平方数时,才能将它放到该柱顶;空柱可以直接放球。

形式化问题描述

给定柱子数 \(N\) ,按 \(1,2,3,\ldots\) 的顺序放球,不能跳过任何编号,也不能移动已经放好的球。每次选择一根空柱,或选择一根柱顶编号与新球编号之和为完全平方数的柱子,将新球放到顶端。

输出能够放入最多球数的任意一种最终方案。柱子有 \(N\) 根,输出时按任意固定顺序逐根列出即可。

输入格式

一行一个整数 \(N\) .

输出格式

输出 \(N\) 行,第 \(i\) 行按从顶到底的顺序列出第 \(i\) 根柱子的所有球编号,用空格分隔。所有最优方案均接受。

样例

样例 1

输入

4

输出

8 1
11 5 4
9 7 2
10 6 3

样例 2

输入

1

输出

1

样例 3

输入

3

输出

5 4
6 3 1
7 2

样例解释

第一组放入编号一到十一。图中按从顶到底展示该最优方案;相邻两球编号之和均为完全平方数。再放入十二号球时,即使重新选择此前的放置方案,也无法用四根柱子完成。

N=4; adjacent labels sum to 9, 16 or 4

数据范围与保证

\(1\le N\le1000\) .

分值比例 额外条件
100% 无额外条件