#P1672. Fully Diversified Sequences of Sets

Fully Diversified Sequences of Sets

描述

给定一个正整数 (n),令 (N) 为从 (1) 到 (n) 的整数集合。有限子集序列 (A_1, \cdots, A_k) 满足以下条件时被称为完全多样化序列: a. 每个子集 (A_i) 都包含偶数个元素。 b. 对于 (N) 中的每个元素 (m),在该序列中恰好有 (m) 个集合 (A_i) 包含 (m) 作为其成员。

例如,子集序列 ({1,3}),({2,3}),({2,3}) 是集合 ({1,2,3}) 的一个完全多样化序列。(注意,序列中的子集可能是相同的。)

如果不存在其他集合 (N) 的完全多样化序列,其序列元素数量比某个完全多样化序列更少,那么这个集合 (N) 的完全多样化序列就被称为最小完全多样化序列。上述例子是最小的,因为元素 (3) 必须出现在 (3) 个不同的集合中。

编写一个程序,对于给定的整数 (n),判断是否存在对应的集合 (N) 的完全多样化序列,如果存在完全多样化序列,则找到集合 (N) 的一个最小完全多样化序列。

输入

输入将是一个正整数 (n) 的序列,每行一个,随后在另一行输入一个 (0) 表示输入结束。

输出

如果不存在对应的集合 (N) 的完全多样化序列,则在一行中输出一个 (0),后面跟一个空行。

如果存在对应的集合 (N) 的完全多样化序列,则在一行中输出你找到的最小序列中的集合数量,然后每行输出一个集合,之后跟一个空行。

每个集合的元素应以升序输出,数字之间用单个空格分隔。序列中的集合应以字典序输出。每个问题可能有许多可能的解决方案。

输入数据 1

8
9
11
17
23
0

输出数据 1

8
1 3 5 6 7 8
2 4 5 6 7 8
2 4 5 6 7 8
3 4 5 6 7 8
3 4 5 6 7 8
6 8
7 8
7 8

0

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

0

23
1 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
5 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
9 11 12 13 14 15 16 17 18 19 20 21 22 23
10 11 12 13 14 15 16 17 18 19 20 21 22 23
10 11 12 13 14 15 16 17 18 19 20 21 22 23
12 13 14 15 16 17 18 19 20 21 22 23
13 15 16 17 18 19 20 21 22 23
14 15 16 17 18 19 20 21 22 23
14 15 16 17 18 19 20 21 22 23
16 17 18 19 20 21 22 23
17 19 20 21 22 23
18 19 20 21 22 23
18 19 20 21 22 23
20 21 22 23
21 23
22 23
22 23

题目来源

大纽约地区 2003 年竞赛