#D1007. 子集の子集
子集の子集
题目背景
个硬币,每个价值 。所有能够凑出 的硬币集合,其子集能表示的价值有多少种?
题目描述
奆想从蒻那里买一块昂贵的巧克力。他有 枚硬币,其中第 枚硬币的价值是 。巧克力的价格是 ,因此奆将从他的硬币中取出一个总和等于 的子集交给蒻。
看着自己的硬币,奆想到了一个问题:把硬币给了蒻后,蒻能用它们创造出什么价值呢?他很嫉妒,不希望蒻创造出很多价值。因此他想知道所有可能的值 ,即蒻能用总和为 的某个硬币子集制造出 价值。
简单来说,奆想要知道有多少种 ,存在一个总和为 的硬币子集,这个子集的某个子集的总和为 ,即存在某种支付巧克力的方式,蒻能用这些硬币得到总和 。
输入格式
第一行包含两个整数 和 ( ),分别是硬币的数量和巧克力的价格。
第二行包含 个整数 ,即奆硬币的价值。
保证使用这些硬币可以凑出 的价值。
输出格式
输出的第一行包含一个整数 ,可能的 的数量。
第二行按升序打印 个整数,所有可能的 值。
输入输出样例 #1
输入 #1
6 18
5 6 1 10 12 2
输出 #1
16
0 1 2 3 5 6 7 8 10 11 12 13 15 16 17 18
输入输出样例 #2
输入 #2
3 50
25 25 50
输出 #2
3
0 25 50
相关
在以下作业中: