atcoder#ABC292H. [ABC292Ex] Rating Estimator

[ABC292Ex] Rating Estimator

Score : 600600 points

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}.

5 6 7
5 1 9 3 8
4 9
2 10
1 0
3 0
3 30
5 100
1 100
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.