만드는 중입니다

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

가로등

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

요약
가로등 N개의 높이와 Q번의 높이 변경이 주어질 때, 매번 변경 후 사이의 모든 가로등이 둘보다 낮은 같은 높이의 가로등 쌍 수를 구합니다.
난이도

어려움10점 중 8점

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

문제

일직선 도로를 따라 NN개의 가로등이 세워져 있다. ii번째 가로등의 초기 높이는 AiA_i이다 (1≤i≤N1 \le i \le N). 이 가로등을 이용해 전기줄을 설치하려고 한다.

ii번 가로등과 jj번 가로등(i<ji < j) 사이에 전기줄을 걸려면 다음 두 조건을 모두 만족해야 한다.

  • Ai=AjA_i = A_j (두 가로등의 높이가 같다.)
  • 모든 i<k<ji < k < j에 대하여 Ak<AiA_k < A_i이다. (두 가로등 사이에 있는 모든 가로등의 높이는 두 가로등보다 낮다.)

관리자가 일부 가로등의 높이를 조정하면 전기줄을 걸 수 있는 상황도 달라진다. 높이 조정은 총 QQ번 이루어진다. 각 조정은 xx번째 가로등의 높이를 hh로 바꾼다. 조정할 때마다, 전기줄을 걸 수 있는 가로등 쌍의 개수를 구하시오.

입력

첫째 줄에 두 정수 NN, QQ가 주어진다 (2≤N≤100 0002 \le N \le 100\,000, 1≤Q≤250 0001 \le Q \le 250\,000).

둘째 줄에 NN개의 정수 A1,A2,…,ANA_1, A_2, \ldots, A_N가 주어진다 (1≤Ai≤1091 \le A_i \le 10^9).

다음 QQ개의 줄에는 두 정수 xx, hh가 주어지며, 이는 AxA_x를 hh로 바꾼다는 뜻이다 (1≤x≤N1 \le x \le N, 1≤h≤1091 \le h \le 10^9). 조정 직전 xx번째 가로등의 높이는 hh와 다르다고 보장된다.

출력

첫째 줄에 초기 상태에서 전기줄을 걸 수 있는 개수를 출력한다.

다음 QQ개의 줄에는 각 높이 조정 후 전기줄을 걸 수 있는 개수를 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    6 2
    4 2 2 2 4 6
    4 6
    6 4
    
    예상 출력
    3
    2
    2