P16097 [ICPC 2019 NAIPC] Cost of Living

题目描述

一位报纸专栏作家最近写了一篇文章,将迪士尼乐园门票价格的上涨与经济中的其他事物进行比较。例如,如果自 1990 年以来汽油价格的涨幅与迪士尼乐园门票相同,那么现在每加仑汽油的价格将是 6.66 美元。 考虑若干种商品在连续若干年内的价格。设第 $x$ 年到第 $x+1$ 年的通货膨胀率为 $\text{inflation}(x) > 0$。此外,每种商品 $A$ 都有一个固定不变的乘数 $\text{modifier}(A) > 0$。因此,对于商品 $A$ 在第 $x+1$ 年的价格,有: $$ \begin{aligned} \text{price}(A, x+1) = \text{price}(A, x) \cdot \text{inflation}(x) \cdot \text{modifier}(A) \end{aligned} $$ 遗憾的是,这些乘数是未知的,并且部分价格和通货膨胀率也是未知的。 给定若干年的通货膨胀率、若干种商品在连续若干年内的价格,以及若干询问(询问某种商品在某个年份的价格),请回答这些询问。

输入格式

每个测试用例的第一行包含三个空格分隔的整数 $y$($1 \leq y \leq 10$)、$c$($1 \leq c \leq 100$)和 $q$($1 \leq q \leq y \cdot c$),其中 $y$ 是连续的年数,$c$ 是商品种类数,$q$ 是需要回答的询问数量。 接下来的 $y - 1$ 行,每行包含一个实数 $r$($1.0 \leq r \leq 1.5$,或 $r = -1.0$),表示通货膨胀率。值为 $-1.0$ 表示该通货膨胀率未知。第一个通货膨胀率表示从第 1 年到第 2 年的变化,第二个表示从第 2 年到第 3 年的变化,以此类推。已知的通货膨胀率将符合给定的范围限制;未知但可唯一确定的通货膨胀率可能不在该范围内,但保证严格大于零。 接下来的 $y$ 行,每行描述某一年的价格。每行包含 $c$ 个空格分隔的实数 $p$($1.0 < p < 1{,}000{,}000.0$,或 $p = -1.0$),表示该商品在该年的价格。值为 $-1.0$ 表示该价格未知。 接下来的 $q$ 行,每行包含两个空格分隔的整数 $a$($1 \leq a \leq c$)和 $b$($1 \leq b \leq y$),表示询问商品 $a$ 在第 $b$ 年的价格。所有询问互不相同。 所有可以唯一确定的价格都将严格大于零且严格小于 $1{,}000{,}000.0$。输入中的价格和通货膨胀率的值可能不是精确的,但将精确到小数点后 10 位。所有实数的小数点后最多包含 10 位数字。

输出格式

输出 $q$ 行。每行应包含一个实数,表示给定商品在给定年份的价格,如果无法确定则输出 $-1.0$。按输入中出现的顺序回答询问。如果答案与标准答案的绝对误差或相对误差不超过 $10^{-4}$,则视为正确。

说明/提示

翻译由 DeepSeek V3.2 完成