题目描述
快递站要把若干件货装上一辆限重恰好为 的拖车:共 件货物,第 件重 ,每件要么整件拿、要么不拿。要选出一个子集使总重恰好等于 ,并在所有可行方案里拿的件数尽量少;若没有任何子集恰好凑成 ,输出 -1。
输入格式
第一行两个整数 , ;第二行 个整数 。
输出格式
一行一个整数:恰好装满时的最少件数;凑不出输出 -1。
样例
输入
5 9 4 1 3 5 2
输出
2
数据范围
- 对于 30% 的数据, 20 且 , 500(子集枚举可过)。
- 对于 60% 的数据, 100 且 2000。
- 对于 100% 的数据,1 300,1 5000,1 5000。