폭우 (Easy)

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

요약
한 벽의 높이를 올리는 갱신이 끝날 때마다 양 끝 사이에 고일 수 있는 물의 최대량을 구한다.
난이도

보통10점 중 7점

유형
배열, 세그먼트 트리, 누적 합
정답자
아직 제출이 없습니다

문제

일렬로 놓인 NN개의 칸에 끊임없는 비가 내린다. ii번째 칸에는 초기에 높이 A_iA\_i의 벽이 세워져 있다. 벽 안에 고인 비가 가득 차면 왼쪽 끝과 오른쪽 끝의 공허로 넘쳐서 사라진다. 또한, 빗물은 일렬로 놓인 좌우 방향 이외의 방향으로 이동하지 않는다.

QQ개의 쿼리가 주어진다. 각 쿼리는 i,xi, x로 이뤄지며, ii번째 칸의 벽의 높이 A_iA\_i가 이후로 xx가 된다는 의미이다. 이 때, A_i<xA\_i \lt x임이 보장된다.

각 쿼리가 끝날 때마다 최대 얼마만큼의 비가 고이게 될 수 있는지 답하라.

입력

첫 번째 줄에 NN, QQ가 차례대로 주어진다. (1≤N≤100,000;1≤Q≤100,0001 \le N \le 100\\,000; 1 \le Q \le 100\\,000)

두 번째 줄에 초기 높이 A_iA\_i가 순서대로 주어진다. (1≤A_i≤1091 \le A\_i \le 10^9)

세 번째 줄부터 QQ개의 줄에 걸쳐 각 줄마다 쿼리를 의미하는 두 정수 i,xi, x가 공백으로 구분되어 주어진다. (1≤i≤N;1≤x≤1091 \le i \le N; 1 \le x \le 10^9)

입력으로 주어지는 모든 수는 정수이다.

출력

QQ개의 줄에 걸쳐 각 쿼리를 수행했을 때의 답을 출력한다.

예제1

  1. 예제 1

    입력
    12 3
    3 1 4 1 5 9 2 6 5 3 5 10
    4 2
    1 10
    3 9
    
    예상 출력
    28
    58
    53