#P16097. [ICPC 2019 NAIPC] Cost of Living

[ICPC 2019 NAIPC] Cost of Living

题目描述

一位报纸专栏作家最近写了一篇文章,将迪士尼乐园门票价格的上涨与经济中的其他事物进行比较。例如,如果自 1990 年以来汽油价格的涨幅与迪士尼乐园门票相同,那么现在每加仑汽油的价格将是 6.66 美元。

考虑若干种商品在连续若干年内的价格。设第 xx 年到第 x+1x+1 年的通货膨胀率为 inflation(x)>0\text{inflation}(x) > 0。此外,每种商品 AA 都有一个固定不变的乘数 modifier(A)>0\text{modifier}(A) > 0。因此,对于商品 AA 在第 x+1x+1 年的价格,有:

$$\begin{aligned} \text{price}(A, x+1) = \text{price}(A, x) \cdot \text{inflation}(x) \cdot \text{modifier}(A) \end{aligned}$$

遗憾的是,这些乘数是未知的,并且部分价格和通货膨胀率也是未知的。

给定若干年的通货膨胀率、若干种商品在连续若干年内的价格,以及若干询问(询问某种商品在某个年份的价格),请回答这些询问。

输入格式

每个测试用例的第一行包含三个空格分隔的整数 yy1y101 \leq y \leq 10)、cc1c1001 \leq c \leq 100)和 qq1qyc1 \leq q \leq y \cdot c),其中 yy 是连续的年数,cc 是商品种类数,qq 是需要回答的询问数量。

接下来的 y1y - 1 行,每行包含一个实数 rr1.0r1.51.0 \leq r \leq 1.5,或 r=1.0r = -1.0),表示通货膨胀率。值为 1.0-1.0 表示该通货膨胀率未知。第一个通货膨胀率表示从第 1 年到第 2 年的变化,第二个表示从第 2 年到第 3 年的变化,以此类推。已知的通货膨胀率将符合给定的范围限制;未知但可唯一确定的通货膨胀率可能不在该范围内,但保证严格大于零。

接下来的 yy 行,每行描述某一年的价格。每行包含 cc 个空格分隔的实数 pp1.0<p<1,000,000.01.0 < p < 1{,}000{,}000.0,或 p=1.0p = -1.0),表示该商品在该年的价格。值为 1.0-1.0 表示该价格未知。

接下来的 qq 行,每行包含两个空格分隔的整数 aa1ac1 \leq a \leq c)和 bb1by1 \leq b \leq y),表示询问商品 aa 在第 bb 年的价格。所有询问互不相同。

所有可以唯一确定的价格都将严格大于零且严格小于 1,000,000.01{,}000{,}000.0。输入中的价格和通货膨胀率的值可能不是精确的,但将精确到小数点后 10 位。所有实数的小数点后最多包含 10 位数字。

输出格式

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

4 2 2
1.3333333333
1.2500000000
-1
3.00 -1
4.00 8.00
5.00 10.00
-1 11.00
2 1
1 4
6.0000000000
5.5000000000

提示

翻译由 DeepSeek V3.2 完成