在商店中,每一种商品都有一个价格(用整数表示)。为了吸引顾客,商店推出了促销活动,将一种或多种商品组合起来以优惠价销售。
例如:
现在,顾客需要购买一定数量的商品,请计算在充分利用这些优惠活动的情况下,最少需要花费多少钱。
注意:你不能为了获得更低的优惠价而额外添加不需要的商品,只能购买指定的商品,但可以自由选择使用哪些优惠(可以多次使用同一优惠,只要购买数量足够)。
输入文件包括两部分:商店提供的优惠信息和顾客的购物清单。
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
最优方案:
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。USACO