#326. 魔术球问题

魔术球问题

题目描述

假设有n\red {n}根柱子,现要按下述规则在这n\red {n}根柱子中依次放入编号为123...\red {1,2,3,...}的球。 (1)每次只能在某根柱子的最上面放球。 (2)在同一根柱子中,任何2\red {2}个相邻球的编号之和为完全平方数。 试设计一个算法,计算出在n\red {n}根柱子上最多能放多少个球。例如,在4\red {4} 根柱子上最多可 放11\red {11} 个球。 编程任务: 对于给定的n\red {n},计算在n\red {n}根柱子上最多能放多少个球。

输入格式

由文件input.txt\red {input.txt}提供输入数据。文件第1\red {1} 行有1\red {1}个正整数n(n<=55)\red {n(n<=55)},表示柱子数。

输出格式

程序运行结束时,将n\red {n} 根柱子上最多能放的球数以及相应的放置方案输出到文件 output.txt\red {output.txt}中。文件的第一行是球数。接下来的n\red {n}行,每行是一根柱子上的球的编号。

样例

输入样例

4

输出样例

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