#5111. Freestyle

0

Freestyle

Freestyle

题目描述

Takahashi 可以用 NN 种不同的泳姿游泳。
当他使用第 ii 种泳姿时,每秒消耗 AiA_i 体力并前进 BiB_i 米。
回答 QQ 个查询。第 ii 个查询如下:

判断是否有可能在总消耗体力不超过 CiC_i 的情况下前进 DiD_i 米。如果可能,求所需的最少秒数。

在这里,他可以自由组合不同的泳姿,且切换泳姿的时间可以忽略不计。
具体地,他可以按以下步骤游泳:

选择正整数 mm,长度为 mm 的正实数序列 t=(t1,t2,…,tm)t=(t_1,t_2,\dots,t_m),以及长度为 mm 的整数序列 x=(x1,x2,…,xm)x=(x_1,x_2,\dots,x_m),其中每个元素在 11 到 NN 之间(含)。 然后,按顺序 i=1,2,…,mi=1,2,\dots,m 在第 xix_i 种泳姿下游 tit_i 秒。

输入格式

输入按下述格式由标准输入给出: NN A1A_1 B1B_1 A2A_2 B2B_2 ⋮\vdots ANA_N BNB_N QQ C1C_1 D1D_1 C2C_2 D2D_2 ⋮\vdots CQC_Q DQD_Q

输出格式

共输出 QQ 行。
对于第 ii 个查询,在第 ii 行输出答案如下:

如果在总消耗体力不超过 CiC_i 的情况下无法前进 DiD_i 米,则输出 −1-1。 否则,输出所需的最少时间。当打印值与真实答案的绝对或相对误差不超过 10−910^{-9} 时,视为正确。

4
1 2
2 3
3 3
4 4
5
4 7
7 7
49 100
1000 500
4 5
3.000000000000000000
1.750000000000000000
-1
125.000000000000000000
1.500000000000000000

提示

所有输入值均为整数。 1≤N≤2×1051 \le N \le 2 \times 10^5 1≤Ai,Bi≤1091 \le A_i, B_i \le 10^9 1≤Q≤2×1051 \le Q \le 2 \times 10^5 1≤Ci,Di≤1091 \le C_i, D_i \le 10^9在此输入中,Takahashi 可以使用以下四种泳姿:

每秒消耗 11 体力并前进 22 米。 每秒消耗 22 体力并前进 33 米。 每秒消耗 33 体力并前进 33 米。 每秒消耗 44 体力并前进 44 米。

该输入包含五个查询。

对于第一个查询,C1=4,D1=7C_1=4, D_1=7。 选择 t=(1,2)t=(1,2) 和 x=(2,1)x=(2,1)。Takahashi 的游泳过程如下: 在前 11 秒,他消耗 22 体力并前进 33 米。 在接下来的 22 秒,他消耗 22 体力并前进 44 米。

总共,他消耗 44 体力并前进 77 米。所需时间为 33 秒,这是最少的。

对于第二个查询,C2=7,D2=7C_2=7, D_2=7。 选择 t=(7/4)t=(7/4) 和 x=(4)x=(4)。Takahashi 的游泳过程如下: 在前 7/47/4 秒,他消耗 77 体力并前进 77 米。

总共,他消耗 77 体力并前进 77 米。所需时间为 7/47/4 秒,这是最少的。

对于第三个查询,C3=49,D3=100C_3=49, D_3=100。 无论 Takahashi 如何游泳,都无法在总消耗体力不超过 4949 的情况下前进 100100 米。

对于第四个查询,C4=1000,D4=500C_4=1000, D_4=500。 选择 t=(125)t=(125) 和 x=(4)x=(4)。Takahashi 的游泳过程如下: 在前 125125 秒,他消耗 500500 体力并前进 500500 米。

总共,他消耗 500500 体力并前进 500500 米。所需时间为 125125 秒,这是最少的。

对于第五个查询,C5=4,D5=5C_5=4, D_5=5。 选择 t=(1/2,1)t=(1/2,1) 和 x=(4,2)x=(4,2)。Takahashi 的游泳过程如下: 在前 1/21/2 秒,他消耗 22 体力并前进 22 米。 在接下来的 11 秒,他消耗 22 体力并前进 33 米。

总共,他消耗 44 体力并前进 55 米。所需时间为 3/23/2 秒,这是最少的。

标签: AtCoder|abc356G

来源

AtCoder|abc356G