14118 - Shopping Offers 商店购物
时间限制 : 1 秒
内存限制 : 128 MB
在商店中,每一种商品都有一个价格(用整数表示)。为了吸引顾客,商店推出了促销活动,将一种或多种商品组合起来以优惠价销售。
例如:
- 三朵花的价格是 5z 而不是 6z;
- 两个花瓶和一朵花的价格是 10z 而不是 12z。
现在,顾客需要购买一定数量的商品,请计算在充分利用这些优惠活动的情况下,最少需要花费多少钱。
注意:你不能为了获得更低的优惠价而额外添加不需要的商品,只能购买指定的商品,但可以自由选择使用哪些优惠(可以多次使用同一优惠,只要购买数量足够)。
输入
输入文件包括两部分:商店提供的优惠信息和顾客的购物清单。
- 第一行包含一个整数
s(0 <= s <= 99),表示优惠方案的种类数。 - 接下来
s行,每行描述一种优惠方案:- 第一个整数
n(1 <= n <= 5),表示该优惠由n种商品组成。 - 后面跟着
n对整数c和k(1 <= k <= 5),表示该优惠包含k个编号为c的商品。 - 最后一个整数
p(1 <= p <= 9999),表示该优惠的价格(优惠价一定低于原价总和)。
- 第一个整数
- 接下来一行包含一个整数
b(0 <= b <= 5),表示顾客需要购买b种不同的商品。 - 接下来
b行,每行描述一种需要购买的商品:- 三个整数
c、k和p:分别表示商品编号(1 <= c <= 999)、需要购买的数量(1 <= k <= 5)以及该商品的原价(1 <= p <= 999)。
- 三个整数
注意:总购买数量不超过 5 * 5 = 25 个商品。
输出
输出一个整数,表示购买这些商品所需的最低总花费。
样例
输入
2 1 7 3 5 2 7 1 8 2 10 2 7 3 2 8 2 5
输出
14
提示
样例说明
- 优惠方案1:购买 3 个编号为 7 的商品,优惠价为 5。
- 优惠方案2:购买 1 个编号为 7 的商品和 2 个编号为 8 的商品,优惠价为 10。
- 购物清单:需要购买 3 个编号为 7 的商品(原价每个 2)和 2 个编号为 8 的商品(原价每个 5)。
最优方案:
- 使用优惠方案2,购买 1 个 7 号和 2 个 8 号,花费 10。
- 再以原价购买剩余的 2 个 7 号商品,花费 2×2 = 4。 总花费为 10 + 4 = 14。
数据范围与约定
s:优惠方案数, 0 ≤ s ≤ 99 。- 每个优惠方案包含的商品种类数
n: 1 ≤ n ≤ 5。 - 每种商品在一个优惠方案中的数量
k: 1 ≤ k ≤ 5。 - 商品编号
c: 1 ≤ c ≤ 999。 - 优惠价格
p:1 ≤ p ≤ 9999。 - 需要购买的商品种类数
b:0 ≤ b ≤ 5。 - 每种需要购买的商品数量
k:1 ≤ k ≤ 5。 - 商品原价
p:1 ≤ p ≤ 999。 - 总商品数量最多为 5×5 = 25 个。
来源
USACO