/ Vijos / 题库 /

买玩具

买玩具

时间限制:1秒  内存限制:256M


【题目描述】

  小H去玩具店购买玩具。他只有K枚硬币(1≤K≤20),每枚硬币的面值在1到109之间。小H想要按顺序完成N次购买(1≤N≤105),其中第i次购买花费ci单位金钱(1≤ ci≤105)。在连续进行购买时,他可以随时停下来,用一枚硬币一次性支付自上次付款以来所有购买的总费用,当然,他使用的这枚硬币必须足够支付所有这些费用。不幸的是,老板完全没有零钱,所以每当小H使用的硬币面值大于他应付的金额时,他不会收到老板找回的零钱!
请计算小H按顺序完成N次购买后,最终能剩下的最大金钱数额。如果小H无法完成N次购买,则输出他能购买的最大次数,即按顺序购买玩具的最大数量。

【输入格式】

  第1行:两个整数K和N。
第2行至第1+K行:每行包含小H的一枚硬币的面值。
第2+K行至第1+N+K行:这N行包含小H 计划进行的每次购买的花费。

【输出格式】

  输出一个整数,如果小H完成N次购买,则输出他剩下钱币的最大数量;否则输出其按顺序购买的最大次数。

【输入输出样例1】

 Input

3 6
12
15
10
6
3
3
2
3
7

 Output

12

【输入输出样例2】

 Input

3 5
28
32
30
16
16
16
16
16

 Output

4

【数据限制】

对于50%的数据,2≤K≤10。
对于100%的数据,10≤K≤20,2≤N≤105。

【来源】

  Mr.he

信息

ID
3232
难度
(无)
分类
动态规划 | 状态压缩DP 点击显示
标签
(无)
递交数
0
已通过
0
通过率
?
被复制
2
上传者