SP2856 HELPBOB - Help Bob

题目描述

Bob 十分喜欢披萨,但钱包总是紧巴巴的。一天,他看到报纸上说他最爱的 Alfredo's Pizza Restaurant 正在举办一个比赛:谁能在仅购买一次任意一种披萨的情况下,找到每单位面积价格最低的方法,就能赢得一份大披萨作为奖励。Bob 心中窃喜地想:「这太简单了!我只需计算每种披萨的平均价格,找出最低的就是所求。」 然而,事情并没有那么简单:Alfredo 为某些披萨提供了可以让其他披萨变得便宜的折扣券,并且这些折扣券还可以叠加使用。披萨必须一件一件地购买,不能用优惠券追溯已买披萨的费用。你能帮 Bob 成为第一个解决此难题并赢得披萨的人吗?

输入格式

输入包括若干个测试用例。每个用例从一个整数 $m$ 开始,表示 Alfredo 提供的披萨种类数量。输入以 $m=0$ 结束。每种披萨用一行描述,从 $p_i$、$a_i$ 和 $n_i$ 三个整数开始,分别表示该披萨的价格、面积和购买时获得的优惠券数量,限定 $1 \le p_i \le 10000$,$1 \le a_i \le 10000$,$0 \le n_i \le 10$。接下来有 $n_i$ 对整数,分别为 $x_{i,j}$ 和 $y_{i,j}$, $x_{i,j}$ 表示优惠券可作用的披萨编号, $1 \le x_{i,j} \le m$;$y_{i,j}$ 表示该编号披萨的折扣百分比, $1 \le y_{i,j} \le 100$。保证每个 $i$ 下 $x_{i,j}$ 的值各不相同。

输出格式

对每个测试用例,输出一行,显示购买任何一种披萨所能达到的最低每单位面积价格。结果保留四位小数。注意:你可以叠加任意张优惠券,例如对于价格为 10 的披萨,如果有两张优惠券,一张为 50%,一张为 20%,则最终支付为 $10 \times 0.8 \times 0.5 = 4$ 个单位。 **本翻译由 AI 自动生成**