만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

트리플 점프

시간 제한2초메모리 제한512 MB

요약
각 구간 [L, R]에서 a<b<c이고 b-a <= c-b를 만족하는 A[a]+A[b]+A[c]의 최댓값을 구합니다.
난이도

어려움10점 중 8점

유형
분할 정복, 세그먼트 트리, 동적 계획법
정답자
아직 제출이 없습니다

문제

길이가 아주 긴 일직선 도로가 있다. 도로는 1번부터 NN번까지 번호가 매겨진 NN개의 구간으로 이루어져 있다. 구간 ii(1≤i≤N1 \le i \le N)의 단단한 정도는 AiA_i이다.

스포츠 재능이 뛰어난 JOI군은 트리플 점프를 할 예정이다. 트리플 점프는 연속된 세 번의 점프로 이루어진다. JOI군이 도약하는 구간의 번호를 각각 aa, bb, cc라고 할 때, 다음 조건을 만족해야 한다.

  • a<b<ca < b < c. 구간 번호는 증가해야 한다.
  • b−a≤c−bb - a \le c - b. 첫 번째 점프 거리는 두 번째 점프 거리보다 길지 않아야 한다.

JOI군은 트리플 점프를 QQ번 수행한다. jj번째 트리플 점프에서는 번호가 LjL_j부터 RjR_j까지인 구간에서 도약해야 한다. 즉 Lj≤a<b<c≤RjL_j \le a < b < c \le R_j를 만족해야 한다.

JOI군은 더 단단한 구간에서 도약하고 싶어 한다. 각 트리플 점프마다 도약하는 구간들의 단단한 정도 합의 최댓값을 구하라.

입력

입력은 다음 형식으로 주어진다. 입력의 모든 값은 정수다.

N
A1 A2 ... AN
Q
L1 R1
L2 R2
...
LQ RQ

출력

QQ개의 줄을 출력한다. jj번째 줄에는 jj번째 트리플 점프에서 JOI군이 도약하는 구간들의 단단한 정도 합의 최댓값을 출력한다.

제한

  • 3≤N≤500 0003 \le N \le 500\,000
  • 1≤Ai≤100 000 0001 \le A_i \le 100\,000\,000 (1≤i≤N1 \le i \le N)
  • 1≤Q≤500 0001 \le Q \le 500\,000
  • 1≤Lj<Lj+2≤Rj≤N1 \le L_j < L_j + 2 \le R_j \le N (1≤j≤Q1 \le j \le Q)

예제3

  1. 예제 1

    입력
    5
    5 2 1 5 3
    3
    1 4
    2 5
    1 5
    
    예상 출력
    12
    9
    12
    
  2. 예제 2

    입력
    5
    5 4 4 5 4
    1
    1 5
    
    예상 출력
    14
    
  3. 예제 3

    입력
    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