#arc066d. [arc066_d]Contest with Drinks Hard

[arc066_d]Contest with Drinks Hard

题目描述

Joisino即将参加某个编程竞赛的决赛。在这个比赛中,共有NN个问题,编号为11NN。Joisino知道她解决第ii个问题需要TiT_i秒钟。

在这个比赛中,选手首先会选择解决一些问题。然后,选手会解决这些被选中的问题。之后,选手的得分将按照以下方式计算:

  • (得分) = \ =\ (对于每对整数LLRR (1LRN)(1\leq L\leq R\leq N),满足对于每个iiLiRL\leq i\leq R,问题ii都被解决的对数)-(选手解决选中问题所需的总时间)

请注意,选手可以选择不解决任何问题,这种情况下得分将为00

另外,比赛给选手提供了MM种饮料,编号为11MM。如果Joisino选择饮料ii1iM1\leq i\leq M),她的大脑将被刺激,她解决问题PiP_i所需的时间将变为XiX_i秒。在这里,XiX_i可能大于原本解决问题PiP_i所需的时间。选择饮料ii不会影响解决其他问题所需的时间。

选手在比赛开始前只能选择一种饮料。Joisino想知道如果她选择这种饮料,比赛中可以获得的最高分数是多少。你的任务是编写一个程序来计算这个最高分数。

约束条件

  • 所有输入值都是整数。
  • 1N3\*1051≦N≦3\*10^5
  • 1Ti1091≦T_i≦10^9
  • TiT_i的总和)1012≦10^{12}
  • 1M3\*1051≦M≦3\*10^5
  • 1PiN1≦P_i≦N
  • 1Xi1091≦X_i≦10^9

输入

输入从标准输入中以以下格式给出:

NN T1T_1 T2T_2 ...... TNT_N MM P1P_1 X1X_1 P2P_2 X2X_2 :: PMP_M XMX_M

输出

对于每种饮料,按顺序每行打印Joisino选择该饮料时可以获得的最高分数。

示例输入 1

5
1 1 4 1 1
2
3 2
3 10

示例输出 1

9
2

如果Joisino选择饮料11,则可以通过解决所有问题获得最高分数。

如果Joisino选择饮料22,则可以通过解决问题1,2,41,2,455获得最高分数。

示例输入 2

12
1 2 1 3 4 1 2 1 12 3 12 12
10
9 3
11 1
5 35
6 15
12 1
1 9
4 3
10 2
5 1
7 6

示例输出 2

34
35
5
11
35
17
25
26
28
21