#aBC292H. [ABC292Ex] Rating Estimator

[ABC292Ex] Rating Estimator

AT_abc292_h [ABC292Ex] Rating Estimator

题目描述

你将参加 NN 场比赛。比赛按照举办顺序分别称为第 11 场、第 22 场,……,第 NN 场比赛。

每参加一场比赛,你会获得一个称为“表现值”的分数。第 ii 场比赛获得的表现值记为 PiP_i

此外,你有一个称为“Rating”的数值。Rating 会根据比赛中的表现值发生变化。参加比赛前,Rating 的初始值为 00,在参加完第 nn 场比赛后,Rating 会变为 1n(i=1nPi)\frac{1}{n}\left(\sum_{i=1}^n P_i\right)

但是,如果你的 Rating 一旦达到 BB 及以上,那么之后即使继续参加比赛,Rating 也不会再发生变化。

你决定在比赛前预测每场比赛的表现值。初始时,第 ii 场比赛的表现值预测为 aia_i。现在有 QQ 个查询,请按输入顺序依次处理。

每个查询给出两个整数 c,xc,x。你需要先将第 cc 场比赛的表现值预测改为 xx(这个更改是永久的)。然后,假设你在 NN 场比赛中都获得了当前预测的表现值,输出参加完所有比赛后的 Rating 值。

输入格式

输入按以下格式从标准输入读入。ci,xic_i, x_i 表示第 ii 个查询中的 c,xc,x

NN BB QQ
a1a_1 a2a_2 \dots aNa_N
c1c_1 x1x_1
c2c_2 x2x_2
\dots
cQc_Q xQx_Q

输出格式

输出 QQ 行。第 ii 行输出第 ii 个查询的答案。

只要你的输出与真值的绝对误差或相对误差不超过 10910^{-9},就会被判定为正确。

输入输出样例 #1

输入 #1

5 6 7
5 1 9 3 8
4 9
2 10
1 0
3 0
3 30
5 100
1 100

输出 #1

6.000000000000000
7.500000000000000
6.333333333333333
5.400000000000000
13.333333333333334
13.333333333333334
100.000000000000000

说明/提示

数据范围

  • 1N5×1051 \leq N \leq 5 \times 10^5
  • 1B1091 \leq B \leq 10^9
  • 1Q1051 \leq Q \leq 10^5
  • 0ai1090 \leq a_i \leq 10^9
  • 1cN1 \leq c \leq N
  • 0x1090 \leq x \leq 10^9
  • 输入的所有数均为整数

样例解释 1

初始时,(a1,a2,a3,a4,a5)=(5,1,9,3,8)(a_1, a_2, a_3, a_4, a_5) = (5, 1, 9, 3, 8)
第 1 个查询将 a4a_4 改为 99,此时 (a1,a2,a3,a4,a5)=(5,1,9,9,8)(a_1, a_2, a_3, a_4, a_5) = (5, 1, 9, 9, 8)
此时,如果每场比赛的表现值都为 aia_i,你的 Rating 变化如下:

  • 初始时,Rating 为 00
  • 第 1 场比赛结束后,Rating 变为 5/1=55 / 1 = 5
  • 第 2 场比赛结束后,Rating 变为 (5+1)/2=3(5 + 1) / 2 = 3
  • 第 3 场比赛结束后,Rating 变为 (5+1+9)/3=5(5 + 1 + 9) / 3 = 5
  • 第 4 场比赛结束后,Rating 变为 (5+1+9+9)/4=6(5 + 1 + 9 + 9) / 4 = 6
  • 之后,Rating 不再变化,因为第 4 场比赛结束后 Rating 已经达到 BB 及以上。 因此,全部比赛结束后的 Rating 为 66,所以第 1 行输出 66

由 ChatGPT 4.1 翻译