#P51171. 「JOI Open 2019」三级跳

「JOI Open 2019」三级跳

题目描述

译自 JOI Open 2019 T1 「三段跳び / Triple Jump

有一条很长的路,被划分为 NN 段并从 11NN 编号。每一段都一个坚固程度,第 ii 段路的坚固程度为 AiA_i

JOI 君是一位有天赋的体育明星。他将在这条路上进行三级跳。一次三级跳包含三次连续的跳跃动作。设 a,b,ca,b,c 为 JOI 君进行三级跳时三个起跳点的所在段,那么需要满足以下条件:

  • a<b<ca<b<c。即:起跳点所在段需要严格递增;
  • bacbb-a\le c-b。即:第一次的跳跃距离应该不大于第二次的跳跃距离。

JOI 君将进行 QQ 次三级跳。第 jj 次三级跳的所有起跳点所在段编号都在 LjL_jRjR_j 范围内。换句话说,必须保证 Lja<b<cRjL_j\le a<b<c\le R_j

JOI 君想在更坚固的段上起跳。对于每次三级跳,JOI 君想知道起跳点的最大坚固程度之和。

写一个程序,在给定路的段数和每次三级跳的信息的情况下,计算对于每次三级跳,起跳点的最大坚固程度之和。

输入格式

第一行一个整数 NN,表示路的段数;

第二行 NN 个整数 AiA_i,第 ii 个数表示第 ii 段路的坚固程度;

第三行一个整数 QQ,表示 JOI 君进行了 QQ 次三级跳;

接下来 QQ 行,每行两个整数 Lj,RjL_j,R_j,表示每次三段跳进行的区间。

输出格式

输出 QQ 行,第 j (1jQ)j\ (1\le j\le Q) 行表示对第 jj 个询问做出的回答。

样例 1

5
5 2 1 5 3
3
1 4
2 5
1 5
12
9
12

对于第一次三级跳,JOI 君在 1,2,41,2,4 段起跳,最大坚固程度之和为 5+2+5=125+2+5=12

对于第二次三级跳,JOI 君在 3,4,53,4,5 段起跳,最大坚固程度之和为 1+5+3=91+5+3=9,如果他在 2,4,52,4,5 段起跳,得到的坚固程度之和为 1010,但这不满足 bacbb-a\le c-b,因此舍去;

对于第三次三级跳,JOI 君在 1,2,41,2,4 段起跳,最大坚固程度之和为 5+2+5=125+2+5=12,如果他在 1,4,51,4,5 段起跳,得到的坚固程度之和为 1313,但这不满足 bacbb-a\le c-b,因此舍去。

5
5 4 4 5 4
1
1 5
14

这组数据满足子任务 33 的限制条件。

15
12 96 100 61 54 66 37 34 58 21 21 1 13 50 81
12
1 15
3 12
11 14
1 13
5 9
4 6
6 14
2 5
4 15
1 7
1 10
8 13
277
227
72
262
178
181
174
257
208
262
262
113

数据范围与提示

对于所有数据,3N5×105,1Q5×105,1Ai109,1Lj<Lj+2RjN3\le N\le 5\times 10^5,1\le Q\le 5\times 10^5,1\le A_i\le 10^9,1\le L_j\lt L_j+2\le R_j\le N

详细子任务附加限制及分值如下表:

子任务编号 附加限制 分值
11 N,Q100N,Q\le 100 55
22 N5×103N\le 5\times 10^3 1414
33 N2×105,Q=1,L1=1,R1=NN\le 2\times 10^5,Q=1,L_1=1,R_1=N 2727
44 无附加限制 5454