一、题目描述
商店里有N件唯一性商品,每件商品有一个价格,每i件商品的价格是a[i]。一个购买方案可以是从N件商品中选择任意件进行购买(至少一件),花费即价格之和。
现在你需要求出所有购买方案中花费前K小的方案,输出这些方案的花费。当两个方案选择的商品集合至少有一个不同,视为不同方案,因此可能存在两个方案花费相同。
二、输入描述
输入数据位两行。
第一行包含两个整数N,K,整数之间通过空格隔开。分别表示商品的个数,以及需要求得的花费个数。
1<=N<=100000,1<=K<=min(2N-1, 1000000)
第二个记录N个整数a1, a2, …, an整数之间通过空格隔开,表示N件商品的价格。1<=a1<=a2<=…<=an<=100000
三、输出描述
按花费从小到大的顺序依次输出K行,一行一个整数,表示花费钱K小的购买方案的花费
四、测试用例
1、输入
5 6
1 1 2 3 3
2、输出
1
1
2
2
3
3
五、解题思路
1、为什么选择广度优先搜索BFS
可以按层次逐步探索