3835: 组合求和 II

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

题目描述

给定一个由正整数组成的集合 candidates 和一个目标整数 target。你需要从 candidates 中找出所有不同的组合,使得组合中所有数的和等于 target

candidates 中的每个数字在每个组合中只能使用一次。
解集不能包含重复的组合。即使两个组合的数字相同,但选择原集合中不同位置的相同数字构成的组合,也视为同一个组合。

输入

输入共两行。 第一行包含两个整数 n 和 target,分别表示数组 candidates 的长度和目标数。 第二行包含 n 个正整数,表示数组 candidates 的元素,元素之间用一个空格隔开。

输出

输出所有和为 target 的不同的组合。每个组合占一行,同一行中的数字按升序排列,相邻数字之间用一个空格隔开。
不同的组合之间,按字典序输出(即先比较第一个数字,第一个数字小的先输出;若第一个数字相同,则比较第二个数字,以此类推)。题目保证至少有一个解。

样例输入 复制

7 8
10 1 2 7 6 1 5

样例输出 复制

1 1 6
1 2 5
1 7
2 6

提示

对于 100% 的数据,1 ≤ n ≤ 100 1 ≤ candidates[i] ≤ 50 1 ≤ target ≤ 30