P0006

三级跳

三级跳

给定一个长度为 NN 的序列 A1,A2,…,ANA_1, A_2, \ldots, A_N。

对于一次操作,需要选择三个整数 a,b,ca,b,c,满足:

  • a<b<ca < b < c;
  • b−a≤c−bb - a \le c - b。

现有 QQ 次询问。第 jj 次询问给出两个整数 Lj,RjL_j, R_j,要求所选的 a,b,ca,b,c 满足

Lj≤a<b<c≤Rj.L_j \le a < b < c \le R_j.

对于每次询问,求

Aa+Ab+AcA_a + A_b + A_c

的最大值。

输入格式

第一行一个整数 NN。

第二行 NN 个整数 A1,A2,…,ANA_1, A_2, \ldots, A_N。

第三行一个整数 QQ。

接下来 QQ 行,每行两个整数 Lj,RjL_j, R_j,表示一组询问。

输出格式

输出 QQ 行。

第 jj 行输出一个整数,表示第 jj 次询问的最大值。

提示

对于前 20% 的数据,N,Q≤500N,Q \le 500。

对于前 40% 的数据,N,Q≤5000N,Q \le 5000。

对于另外 20% 的数据,N≤500000N \le 500000,Q=1Q=1,且 L1=1,R1=NL_1=1,R_1=N。

对于另外 20% 的数据,AiA_i 在值域内随机生成。

对于 100% 的数据,3≤N≤5000003 \le N \le 500000,1≤Q≤5000001 \le Q \le 500000,1≤Ai≤1091 \le A_i \le 10^9,1≤Lj≤Rj≤N1 \le L_j \le R_j \le N,并保证 Rj−Lj+1≥3R_j - L_j + 1 \ge 3。