#abc292h. Ex - Rating Estimator

Ex - Rating Estimator

Score : 600600 points

问题描述

你将参加从 11NN 按时间顺序编号的共 NN 场比赛。
在每场比赛中,参与者都会得到一个称为表现值的成绩。设第 ii 场比赛的表现值为 PiP_i
此外,你还有一个名为评分的数值,它会根据你在各场比赛中的表现而变化。初始评分为 00,而在完成第 nn 场比赛后的评分为 1n(i=1nPi)\frac{1}{n} \left(\sum_{i=1}^n P_i \right)
然而,一旦你的评分达到 或超过 BB,后续的比赛将不会影响你的评分。

在比赛开始前,你决定预估自己在每场比赛中的表现。设 aia_i 为你对第 ii 场比赛表现的初始预估值。按顺序处理 QQ 个查询请求。

对于每个查询,你会得到两个整数 ccxx。首先,将你对第 cc 场比赛表现的预估值改为 xx。(此更改是持久的。)然后,假设你在所有 NN 场比赛中均达到了预估的表现,请输出比赛结束后你的最终评分。

以上为通义千问 qwen-max 翻译,仅供参考。

Problem Statement

You will participate in NN contests, numbered 11 to NN in chronological order.
A participant in each contest will be given a value called performance for that contest. Let PiP_i be the performance for contest ii.
Additionally, you have a value called rating, which changes according to the performances in contests. The initial rating is 00, and the rating after contest nn is 1n(i=1nPi)\frac{1}{n} \left(\sum_{i=1}^n P_i \right).
However, once your rating is BB or higher, later contests will not affect your rating.

Before the contests, you have decided to estimate your performance in each contest. Let aia_i be the initial estimate of your performance in contest ii. Process QQ queries in the order they are given.

In each query, you are given two integers cc and xx. First, change the estimate of your performance in contest cc to xx. (This change is persistent.) Then, assuming that you get the estimated performances in all NN contests, print your final rating after the contests.

Constraints

  • 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
  • All values in the input are integers.

Input

The input is given from Standard Input in the following format, where cic_i and xix_i are the cc and xx for the ii-th query:

NN BB QQ

a1a_1 a2a_2 \dots aNa_N

c1c_1 x1x_1

c2c_2 x2x_2

\vdots

cQc_Q xQx_Q

Output

Print QQ lines. The ii-th line should contain the answer to the ii-th query.
Your output is considered correct if the absolute or relative error from the true answer is at most 10910^{-9}.

Sample Input 1

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

Sample Output 1

6.000000000000000
7.500000000000000
6.333333333333333
5.400000000000000
13.333333333333334
13.333333333333334
100.000000000000000

Initially, (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).
The first query changes a4a_4 to 99, making (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).
Here, assuming that your performance in contest ii is aia_i, your rating will change as follows.

  • Initially, your rating is 00.
  • After contest 11, your rating will be 5/1=55 / 1 = 5.
  • After contest 22, your rating will be (5+1)/2=3(5 + 1) / 2 = 3.
  • After contest 33, your rating will be (5+1+9)/3=5(5 + 1 + 9) / 3 = 5.
  • After contest 44, your rating will be (5+1+9+9)/4=6(5 + 1 + 9 + 9) / 4 = 6.
  • Your rating will no longer change, because your rating after contest 44 is not less than BB.

Thus, your final rating after the contests is 66, which should be printed in the first line.

update @ 2024/3/10 12:11:47