#1302. 子集合问题

子集合问题

题目描述

子集和问题的一个实例为S,t\red{〈S,t〉}。其中,S=[x1x2xn]\red{ S=[ x_1, x_2,…, x_n] }是一个正整数的集合,c\red{ c}是一个正整数。子集和问题判定是否存在S的一个子集S1\red{S_1},使得子集S1\red{S_1}和等于c\red{c}。 对于给定的正整数的集合S=[x1x2xn\red{S=[ x1, x2,…, xn}和正整数c\red{c},编程计算S\red S 的一个子集S1\red{S_1},使得子集S1\red{S_1}和等于c\red{c}

输入格式

第1行有2个正整数n\red{n}c\red{c}n\red{n}表示S\red{S}的个数,c\red{c}是子集和的目标值。

接下来的1行中,有n\red{n}个正整数,表示集合S\red{S}中的元素。

输出格式

程序运行结束时,将子集和问题的解输出;当问题无解时,输出“No Solution!”。

样例

输入样例

5 10
2 2 6 5 4

输出样例

2 2 6

数据范围与提示

  • 1、 n<10000c<10000000\red{n<10000、c<10000000}
  • 2、 如果有解,只需要输出“最靠前”的一个解