atcoder#ARC072D. [ARC072F] Dam

[ARC072F] Dam

题目描述

あなたはダムを管理しています。ダムは L L リットルまで水を蓄えることができます。ダムははじめ干からびています。また、毎日夜に好きな量の水を排出することができます。毎日朝にはダムに水が流入しますが、その時水が溢れないようにする必要があります。

i i 日目の朝には ti t_i 度の水が vi v_i リットル流入することがわかっています。 各日について、あなたはその日の昼にダムにちょうど L L リットルの水がたまっているという条件のもと、その時点でのダムの水温を最大化しようとすると何度になるかふと気になりました。各 i i について水温の最大値を求めてください。ここで、各最大化のための水の排出は独立に考えるものとします。すなわち、i i 日目の水温の最大化のために排出する水の量は、j(i) j(≠i) 日目の水温の最大化のために排出する水の量と異なっていても構いません。

ただし、水温は流れてくる水以外の一切の影響を受けないものとします。特に、T1 T_1 度、V1 V_1 リットルの水と T2 T_2 度、V2 V_2 リットルの水が混ざると T1V1+T2V2V1+V2 \frac{T_1*V_1+T_2*V_2}{V_1+V_2} 度、V1+V2 V_1+V_2 リットルの水となり、これ以外で水の体積・温度が変化することはありません。

输入格式

入力は以下の形式で標準入力から与えられる。

N N L L t1 t_1 v1 v_1 t2 t_2 v2 v_2 : tN t_N vN v_N

输出格式

i i 日目の朝にダムに L L リットル蓄えることのできる水温の最大値を i i 行目に出力せよ。

答えは、相対誤差または絶対誤差が 106 10^{-6} 以下であれば許容される。

题目大意

有个水库,最多能存LL单位水,一开始是空的

接下来nn天,每天早上有viv_i单位的,水温为tit_i的水流进来

每天晚上你可以放掉一些水,多少自定。但是必须保证第二天水库不会溢出

现在问,对于每个ii,在使用最优放水策略的情况下,第ii天水库是满的情况下最高水温

(每一问之间互相独立)

混合后的温度计算:t3=t1v1+t2v2v1+v2t_3=\frac{t_1*v_1+t_2*v_2}{v_1+v_2}

0n51050 \leq n \leq 5 * 10^5,其他数int范围内

3 10
10 10
20 5
4 3
10.0000000
15.0000000
13.2000000
4 15
0 15
2 5
3 6
4 4
0.0000000
0.6666667
1.8666667
2.9333333
4 15
1000000000 15
9 5
8 6
7 4
1000000000.0000000
666666669.6666666
400000005.0000000
293333338.8666667

提示

制約

  • 1 N  5105 1≦\ N\ ≦\ 5*10^5
  • 1 L  109 1≦\ L\ ≦\ 10^9
  • 0 ti  109(1iN) 0≦\ t_i\ ≦\ 10^9(1≦i≦N)
  • 1 vi  L(1iN) 1≦\ v_i\ ≦\ L(1≦i≦N)
  • v1 = L v_1\ =\ L
  • L, vi, ti L,\ v_i,\ t_i は整数である

Sample Explanation 1

- 1 1 日目には 1 1 日目に流れ込んだ水のみがあるので、必ず10 10 度です。 - 1 1 日目の夜に水を 5 5 リットル捨て、2 2 日目に流入する水と混ざると 10 10 リットル、15 15 度の水が 2 2 日目に蓄えられます。 - 1 1 日目の夜に水を 8 8 リットル捨て、2, 3 2,\ 3 日目に流入する水と混ざると 10 10 リットル、13.2 13.2 度の水が 3 3 日目に蓄えられます。

Sample Explanation 3

水温は 100 100 度を超えることがありますが、蒸発については考えません。