小明用计算机随机生成了N个正整数,他希望从这N个数中选取若千个数,使得它们的和等于M。这些随机生成的数字可能会相同,但是每个数字最多只允许使用一次。
当然这样的选取方案可能不存在,也可能有多个。现在希望你编写一个程序,能够找出数字个数最少的选取方案,输出对应的最少数字的个数,如果无解输出“No solution”。
单组输入,每组输入2行。
第1行包含两个正整数N和M,分别表示初始输入的正整数个数和目标数字和(1 <= N <= 1e3,1 <= M <= 1e5)。
第2行为N个正整数,两两之间用空格隔开(每一个正整数均小于等于1e5)。
输出数字个数最少的选取方案中所包含的最少数字个数,如果无解输出“No solution”。(注意:你不需要输出引号)
5 5 1 3 2 1 1
2
选择3和2即可得到5,一共选择了两个数,所以答案是2,并且不存在更少的数。
时间限制:c/c++/go:1s;java:3s;其他语言:18s。
选择合适的字体大小
选择合适的主题