4009 - 书籍采购(book)

题目描述

A 计划在一家大型书店购买书籍,准备参加学校的读书节。他携带了 C 张书店赠送的购书卡。

书店的书架上摆放了 N 本书籍,按照特定顺序排列,小 A 需要按此顺序购买。其中第 i 本书的价格为 P_i 元。

在收银员扫码每本书的价格的过程中,小 A 可以:

  • 随时请收银员停下来,使用一张购书卡支付这一批扫码的书籍,支付的范围是从上次支付后到当前的所有书籍。
  • 所使用的购书卡,需确保购书卡面值足够支付这部分书籍的总价。
  • 如果使用的购书卡面值超过所需费用,店家不会退还差额,且不能用于下一批书籍的支付,该张购书卡使用后,会被书店回收

请帮助小 A 计算,在购买完所有 N 本书籍后,他能剩余的购书卡面值总和最大是多少,如果无论如何都无法完成所有购买,输出 -1

输入

第一行包含两个整数 CN,分别表示购书卡数量和书籍数量。

接下来 C 行,每行一个整数,表示一张购书卡的面值。

接下来 N 行,每行一个整数,表示按顺序排列的每本书的价格 P_i

输出

输出一行,包含一个整数:小 A 在购买完所有书籍后能剩余的购书卡面总和最大值,若无法完成所有购买,输出 -1

样例

输入

3 6 
12 
15 
10 
6 
3 
3 
2 
3 
7

输出

12

输入

6 6
15
20
25
10
30
20
5
10
15
10
20
25

输出

35

输入

3 7
90
30
20
15
25
10
20
30
25
15

输出

-1
说明

样例 1 说明

A 有三张购书卡,面值分别为 121510,需要按顺序购买价格为 633237 的书籍。

一种最优方案是:

  • 使用面值 10 的购书卡支付前两本书(6 + 3 = 9)。
  • 使用面值 15 的购书卡支付剩余四本书(3 + 2 + 3 + 7 = 15)。
  • 剩余面值 12 的购书卡。

因此,最大剩余面值总和为 12

样例 4

见选手目录下的 book/book4.in 与 book/book4.ans。

数据范围

对于 40\% 的数据,满足 1 \le C \le 6

对于 100\% 的数据,满足 1 \le C \le 161 \le N \le 10^51 \le P_i \le 10^4,购书卡面值范围为 [1, 10^8]

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 3 枚
难度 提高


上一题 下一题