#P3092. [USACO13NOV] No Change G

    ID: 2131 远端评测题 1000ms 125MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>动态规划,dp2013USACO单调队列状态压缩,状压

[USACO13NOV] No Change G

Description

Farmer John 到商场购物,他的钱包里有 K(1K16)K(1\le K\le 16) 个硬币,面值的范围是 [1,108][1,10^8]

FJ 想按顺序买 NN 个物品 (1N105)(1\le N\le 10^5),第 ii 个物品需要花费 cic_i 块钱,(1ci104)(1\le c_i \le 10^4)

在依次进行的购买 NN 个物品的过程中,FJ 可以随时停下来付款,每次付款只用一个硬币,支付购买的内容是从上一次支付后开始到现在的这些所有物品(前提是该硬币足以支付这些物品的费用)。不幸的是,商场的收银机坏了,如果FJ支付的硬币面值大于所需的费用,他不会得到任何找零。

请计算出在购买完 NN 个物品后,FJ 最多剩下多少钱。如果无法完成购买,输出 1-1

Input Format

11 行两个整数,KKNN

22 行到第 K+1K+1 行每行包含 FJ 的一个硬币的金额。

K+2K+2 行到第 N+K+1N+K+1 行共 NN 行,每行包含 FJ 的准备购买的物品的成本。(注:即 cic_i。)

Output Format

11 行:FJ 最终能剩余的最大金额;若无法完成所有购买,则输出 1-1

3 6 
12 
15 
10 
6 
3 
3 
2 
3 
7 

12 

Hint

样例说明

FJ 拥有三枚面值分别为 121215151010 的硬币。他需要按顺序完成价值 663333223377 的购买。

FJ 用 1010 面值的硬币支付前两次购买(6+36+3),随后用 1515 面值的硬币支付剩余购买(3+2+3+73+2+3+7),最终剩下 1212 面值的硬币。