#codefestival2015finalj. [codefestival_2015_final_j]N個のバケツ

[codefestival_2015_final_j]N個のバケツ

问题描述

高桥君想要参加名为"Bucket Festival"的比赛。在Bucket Festival中,有许多使用水桶进行的竞技项目。高桥君自信满满,决定参加名为"NN个水桶"的竞技项目。

"NN个水桶"的规则如下:

  • 参赛者分为一个由NN人组成的团队。每个团队成员都被分配了从1到NN的编号。
  • 团队的NN个成员按照顺时针的方向站在一个圆周上,编号从小到大。第i(1iN1)i (1 ≤ i ≤ N-1)个成员和第i+1i+1个成员,以及第NN个成员和第11个成员是相邻的。
  • 每两个相邻的成员之间放置NN个装满水的水桶。关于每个水桶应该放多少水,团队可以商量决定。但是,水的量必须都是整数。
  • 每个团队成员举起身边的两个水桶。这两个水桶需要由两个成员一同合作举起。如果能够举起所有的NN个水桶,则表示成功,且所有水桶中的水的总量将成为得分。

为了获得尽可能高的得分,高桥君正在考虑应该将多少水放入哪些水桶中。他首先测量了团队成员的力量。经过测量,他得知第i(1iN)i (1 ≤ i ≤ N)个成员的力量为SiS_i。力量为pp的成员可以举起他所拿的两个水桶,前提是这两个水桶中水的平均量不超过pp。也就是说,如果两个水桶中的水量分别为wwvv,那么只要(w+v)/2p(w+v)/2 ≤ p,他就可以举起这两个水桶。

由于高桥君的团队是一个临时团队,团队成员可能会发生变化。共进行了QQ次成员变更,第i(1iQ)i (1 ≤ i ≤ Q)次变更中,第PiP_i个成员发生了变更,新的成员加入,力量为XiX_i。请对每次成员变更后,计算出高桥君团队在该时刻能够获得的最高分数。


输入

从标准输入读取输入数据。

输入的格式如下:

NN

S1S_1 S2S_2 ... SNS_N

QQ

P1P_1 X1X_1

P2P_2 X2X_2

...

PQP_Q XQX_Q

  • 第一行包含一个整数N(3N105)N (3 ≤ N ≤ 10^5),表示参赛者的人数。对于100个测试数据集,保证NN是偶数。
  • 第二行包含NN个整数,以空格分隔,表示团队成员的初始力量。其中,第i(1iN)i (1 ≤ i ≤ N)个整数Si(0Si104)S_i (0 ≤ S_i ≤ 10^4)表示第ii个成员的力量。
  • 第三行包含一个整数Q(1Q105)Q (1 ≤ Q ≤ 10^5),表示团队成员的变更次数。
  • 接下来的QQ行,每行包含两个整数Pi(1PiN)P_i (1 ≤ P_i ≤ N)Xi(0Xi104)X_i (0 ≤ X_i ≤ 10^4),表示第ii次成员变更中,第PiP_i个成员被替换为力量为XiX_i的新成员。

输出

输出共有QQ行。其中,第i(1iQ)i (1 ≤ i ≤ Q)行表示第ii次成员变更后,高桥君团队在该时刻能够获得的最高分数,输出一个整数。最后一行末尾包含换行符。


示例1

4
2 2 2 2
2
1 3
3 0

输出示例1

8
6

下图展示了每次成员变更后,为获得最高分数,水桶中应该放置多少水的分配方案。圆圈代表团队成员,圆圈中的数字代表成员的力量,左上角的数字代表成员的编号。水桶示意图中的数字表示水桶中装满水的量。

figure1


示例2

6
0 0 0 0 0 0
6
3 10000
4 10000
6 10000
2 10000
5 10000
1 10000

输出示例2

0
20000
20000
20000
40000
60000