만드는 중입니다

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

화재

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

요약
바람이 1번에서 N번 방향으로 불 때, T초 뒤 구간 L부터 R까지 불 세기의 합을 Q개의 질문마다 구합니다.
난이도

어려움10점 중 8점

유형
슬라이딩 윈도우, 분할 정복, 누적 합
정답자
아직 제출이 없습니다

문제

JOI 마을에는 1번부터 N번까지 N개의 구역이 일렬로 늘어서 있다. 모든 구역에서 화재가 발생한다. 시각 0에 i번 구역의 화재 세기는 S_i이다 (S_i > 0).

시각 0에 바람이 1번 구역에서 N번 구역 쪽으로 분다. 이웃한 구역 쌍마다, 시각 t (t ≥ 0)에 바람 상류 구역의 화재가 하류 구역의 화재보다 강하면 하류 구역의 시각 t+1 화재 세기는 상류 구역의 시각 t 세기가 된다. 그렇지 않으면 하류 구역의 세기는 그대로다. i번 구역의 시각 t 화재 세기를 S_i(t)라 하면 다음이 성립한다.

Si(t)=max⁡{Si−1(t−1),Si(t−1)}(t≥1)S_i(t) = \max\{S_{i-1}(t-1), S_i(t-1)\} \quad (t \geq 1)

여기서 모든 t ≥ 0에 대해 S_0(t) = 0이고, S_i(0) = S_i이다.

당신은 소방관이며 Q개의 진화 계획이 있고, 그중 정확히 하나만 실행한다. j번째 계획에서는 L_j ≤ k ≤ R_j인 모든 k번 구역에 소화제를 뿌린다. 세기가 s인 화재를 끄려면 소화제 s리터가 필요하다. 따라서 j번째 계획에 필요한 소화제는 S_{L_j}(T_j) + S_{L_j+1}(T_j) + ... + S_{R_j}(T_j) 리터이다. 각 계획에 필요한 소화제의 양을 구하라.

입력

첫 줄에 N과 Q가 주어진다. 둘째 줄에 S_1, S_2, ..., S_N이 주어진다. 이어지는 Q개의 줄에는 각각 T_j, L_j, R_j가 주어진다.

N Q
S_1 S_2 ... S_N
T_1 L_1 R_1
...
T_Q L_Q R_Q

출력

Q줄을 출력한다. j번째 줄에는 j번째 계획에 필요한 소화제의 양을 출력한다.

제한

  • 1 ≤ N ≤ 200 000
  • 1 ≤ Q ≤ 200 000
  • 1 ≤ S_i ≤ 1 000 000 000 (1 ≤ i ≤ N)
  • 1 ≤ T_j ≤ N (1 ≤ j ≤ Q)
  • 1 ≤ L_j ≤ R_j ≤ N (1 ≤ j ≤ Q)

예제5

  1. 예제 1

    입력
    5 5
    9 3 2 6 5
    1 1 3
    2 1 5
    3 2 5
    4 3 3
    5 3 5
    
    예상 출력
    21
    39
    33
    9
    27
    
  2. 예제 2

    입력
    10 10
    3 1 4 1 5 9 2 6 5 3
    1 1 6
    2 8 10
    4 2 7
    8 3 3
    6 1 10
    3 2 8
    5 1 9
    7 4 5
    9 7 9
    10 10 10
    
    예상 출력
    28
    21
    34
    4
    64
    43
    55
    9
    27
    9
    
  3. 예제 3

    입력
    10 10
    3 1 4 1 5 9 2 6 5 3
    1 6 6
    2 8 8
    4 2 2
    8 3 3
    6 1 1
    3 4 4
    5 5 5
    7 10 10
    9 8 8
    10 7 7
    
    예상 출력
    9
    9
    3
    4
    3
    4
    5
    9
    9
    9
    
  4. 예제 4

    입력
    10 10
    3 1 4 1 5 9 2 6 5 3
    7 1 6
    7 8 10
    7 2 7
    7 3 3
    7 1 10
    7 2 8
    7 1 9
    7 4 5
    7 7 9
    7 10 10
    
    예상 출력
    28
    27
    34
    4
    64
    43
    55
    9
    27
    9
    
  5. 예제 5

    입력
    20 20
    2 1 2 2 1 1 1 1 2 2 2 1 2 1 1 2 1 2 1 1
    1 1 14
    2 3 18
    4 10 15
    8 2 17
    9 20 20
    4 8 19
    7 2 20
    11 1 5
    13 2 8
    20 1 20
    2 12 15
    7 1 14
    12 7 18
    14 2 17
    9 19 20
    12 12 12
    6 2 15
    11 2 15
    19 12 17
    4 1 20
    
    예상 출력
    25
    30
    12
    32
    2
    24
    38
    10
    14
    40
    8
    28
    24
    32
    4
    2
    28
    28
    12
    40