打游戏(game)文件读写
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
注意
本题提交程序中请使用文件输入输出操作,否则不得分。
题目描述
小 A 去打游戏。他买了 N 个游戏币,每个游戏币有一个点数 ,表示用这个游戏币最多可以玩 点的游戏。
游戏按顺序分为 K 关,第 i 关游戏需要消耗的点数为 。
在闯关前,小 A 需要提前支付游戏币,每次支付只能使用 1 个游戏币,可以帮助他闯若干关。如果闯完某一关后,所支付游戏币的点数未使用完,但剩余点数又不足以完成下一关,则剩余点数被浪费。如果要继续闯关,则他需要再次支付 1 个游戏币。
小 A 自然希望游戏结束时,手里剩余的游戏币点数之和最大。
自然地,这个问题交给了你。
你只需要输出小 A 闯完 K 关游戏后,手里剩余游戏币的点数之和的最大值。如果无法全部闯关成功,输出 -1。
输入格式
第一行:两个整数依次表示 N, K;
接下来 N 行:每行一个整数,依次表示第 i 个游戏币的点数 ;
接下来 K 行:每行一个整数,依次表示第 i 关游戏需要消耗的点数 。
输出格式
一个整数,表示小 A 最多剩余的游戏币的点数。如果无法全部闯关成功,输出 -1。
样例输入
3 5
10
20
15
7
2
7
5
6
样例输出
15
数据范围
30% 的数据:
100% 的数据:$1 ≤ N ≤ 16, 1 ≤ K ≤ 10^5, 1 ≤ p_i ≤ 10^8, 1 ≤ x_i ≤ 10^4$