3837: 子集生成

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:20 解决:7

题目描述

给定一个由互不相同的整数组成的数组 nums,你需要输出该数组的所有子集(幂集)。子集是指原数组中任意个元素组成的集合(包括空集)。

注意

  • 解集不能包含重复的子集(因为数组元素互不相同,所以正常生成的子集自然不会有重复)。

  • 输出时,每个子集内的元素按升序排列(即从小到大),不同的子集之间按字典序输出(先比较第一个元素,若相同再比较第二个,以此类推)。空集排在最前面。

输入

输入共两行。
第一行包含一个整数 n,表示数组 nums 的长度。
第二行包含 n 个整数,表示数组 nums 的元素,元素之间用一个空格隔开。

输出

输出所有子集。每个子集占一行,同一行中的数字按升序排列,相邻数字之间用一个空格隔开。
空集用空行表示(即直接输出一个空行)。

样例输入 复制

3
1 2 3

样例输出 复制


1
1 2
1 2 3
1 3
2
2 3
3

提示

对于 100% 的数据,1 ≤ n ≤ 10 -10 ≤ nums[i] ≤ 10 nums 中的所有元素互不相同 方法,DFS回溯,DFS枚举