#P0671. 子集和问题

子集和问题

问题描述

子集和问题的一个实例为S,t〈S,t〉。其中,S=x1x2xnS={ x_1 , x_2 ,…, x_n }是一个正整数的集合,cc是一个正整数。

子集和问题判定是否存在S的一个子集S1S1,使得子集S1S_1和等于c。

编程任务

对于给定的正整数的集合S=x1x2xnS={ x_1 , x_2 ,…, x_n }和正整数cc,编程计算SS 的一个子集S1S_1,使得子集S1S_1和等于cc

输入格式

第1行有2个正整数nnccnn表示SS的个数,cc是子集和的目标值。

接下来的1 行中,有nn个正整数,表示集合SS中的元素。

输出格式

输出符合条件的子集。 当问题无解时,输出“No solution!”。

注意:依据S集合元素从左到右依次来画子集树,因此子集树唯一。 若存在多种子集和问题的解时,只输出在这个唯一的子集树按深度优先方向遇到的第一个解,这样保证解的唯一性,利于评判。

样例

输入样例

5 10
2 2 6 5 4

输出样例

2 2 6

n10000c10000000n≤10000,c≤10000000