小红与好数组
题号:NC296720
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小红很喜欢好数组。
\hspace{15pt}定义一个数组是「好数组」当且仅当相邻元素不同且元素均为正整数。
\hspace{15pt}现在输入一个正整数 n,你需要找到所有满足下述条件的数组:
\hspace{23pt}\bullet\,数组的所有元素之和等于 n
\hspace{23pt}\bullet\,数组是「好数组」。
\hspace{15pt}字典序从小到大的顺序依次输出所有满足条件的数组。

【名词解释】
\hspace{15pt}字典序:从两个数组的第一个元素开始逐个比较,直到找到第一个不同的元素,较大元素所在的数组的字典序较大。如果比较到其中一个数组的结尾时依旧全部相同,则较短的数组字典序更小。

输入描述:

\hspace{15pt}第一行输入一个整数 n\left(1\leqq n \leqq 20\right)

输出描述:

\hspace{15pt}输出若干行,第 i 行输出若干个整数,代表满足条件的第 i 小的数组。
示例1

输入

复制
3

输出

复制
1 2
2 1
3