나무와 그림자 hard

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

요약
기울기 -1의 햇빛 아래 일직선에 놓인 나무들에서 나무 위에 지는 그림자 길이의 합을, 나무를 심고 뽑는 시행마다 갱신해 구한다.
난이도

어려움10점 중 8점

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

문제

하늘이는 xx축과 평행한 수직선 모양의 땅에 나무 NN그루를 심었다. 나무가 심어져 있는 위치는 모두 다르며, 나무의 두께는 무시할 수 있을만큼 얇다.

나무가 잘 자라기 위해서는 햇빛을 많이 받는 것이 중요하기 때문에, 하늘이는 각 나무에 그림자가 얼마나 지고 있는 지 알아보기로 했다.

태양은 현재 서쪽에 떠있고 햇빛이 지면과 기울기 −1-1를 이루며 평행하게 비추고 있다.

그림에서 오른쪽 나무 위에 생기는 그림자의 길이는 22이다.

이 때 하늘이는 아래 행위를 QQ회 시행한다.

  • 1,x,h1\\, x\\, h: 위치 xx에 높이 hh의 나무를 심는다.
  • 2,x2\\, x: xx 위치에 있는 나무를 뽑는다.

하늘이를 위해 초기 및 각 시행 직후에 각 나무 위에 생기는 그림자의 길이의 합을 구하시오. 모든 그림자를 합하는 것이 아닌 나무 위에 생기는 그림자만 합하는 것에 주의하자.

입력

첫째 줄에 NN과 QQ가 공백을 사이에 두고 주어진다. (1≤N,Q≤200,000)(1\le N,Q\le 200\\, 000)

둘째 줄부터 NN개의 줄에 걸쳐 각 나무가 심어진 위치와 높이를 의미하는 두 정수 X_iX\_i, H_iH\_i가 공백을 사이에 두고 주어진다. (−109≤X_i≤109;(-10^9\le X\_i\le 10^9; 1≤H_i≤109)1\le H\_i\le 10^9)

N+1N+1번째 줄부터 QQ개의 줄에 걸쳐 하늘이가 시행한 행위를 나타내는 세 정수 v_i,x_i,h_iv\_i,x\_i,h\_i가 공백을 사이에 두고 주어진다. v_i=1v\_i=1이면 위치 x_ix\_i에 나무가 없으며, v_i=2v\_i=2이면 위치 x_ix\_i에 나무가 존재한다. (v_i∈1,2;(v\_i\in\\{1,2\\} ; −109≤x_i≤109;-10^9\le x\_i\le 10^9; 1≤h_i≤109;1\le h\_i\le 10^9; 1≤i≤Q)1\le i\le Q)

출력

Q+1Q+1개의 줄에 걸쳐 초기 및 각 시행 직후에 각 나무 위에 생기는 그림자의 길이의 합을 나타내는 정수를 출력한다.

예제1

  1. 예제 1

    입력
    3 4
    1 4
    2 2
    3 3
    1 4 7
    2 2
    2 3
    1 2 5
    
    예상 출력
    4
    6
    4
    1
    6