만드는 중입니다

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

요새 파괴

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

요약
N개의 블록으로 쌓은 요새와 Q번의 미사일 공격이 주어질 때, 각 공격이 X번 열에서 위쪽부터 몇 개의 블록을 부수는지 공격 순서대로 구합니다.
난이도

보통10점 중 7점

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

문제

NN개의 블럭이 쌓여 요새를 만든다. 각 블럭은 서로 겹치지 않으며, HH층의 LL칸부터 RR칸까지의 구간을 차지한다. 1층의 블럭을 제외한 나머지 블럭들은 항상 바로 아래층에 블럭이 있다. 위에 쌓인 블럭은 아래 블럭의 구간 안에 전부 포함된다. 즉, 블럭 ii 위에 쌓이는 임의의 블럭 jj에 대해 Li≤Lj≤Rj≤RiL_i \le L_j \le R_j \le R_i가 성립한다.

이 요새를 파괴하기 위해 미사일 폭격이 KK번 이루어졌다. 각 폭격은 위치 XX에 위력 PP인 미사일을 발사하며, 요새의 XX 위치에 있는 블럭 중 위에서부터 최대 PP개의 블럭을 파괴한다. 이 과정에서 아래에 있던 블럭이 제거되면, 그 위에 있던 블럭은 피해 없이 아래로 내려온다.

다음 그림은 위치 X=5X=5에 위력 P=1P=1인 미사일이 발사되는 모습이다.

폭격된 순서대로 각 폭격에서 파괴된 블럭의 개수를 구하시오.

입력

첫 줄에 블럭의 개수 NN이 주어진다. (1≤N≤100,0001 \le N \le 100{,}000)

다음 NN줄에 걸쳐 요새를 이루고 있는 블럭의 정보 HH, LL, RR이 주어진다. (1≤H≤N1 \le H \le N, 1≤L≤R≤1,000,000,0001 \le L \le R \le 1{,}000{,}000{,}000)

다음 줄에 폭격의 횟수 QQ가 주어진다. (1≤Q≤100,0001 \le Q \le 100{,}000)

다음 QQ줄에 걸쳐 폭격의 위치 XX와 위력 PP가 주어진다. (1≤X≤1,000,000,0001 \le X \le 1{,}000{,}000{,}000, 1≤P≤N1 \le P \le N)

출력

폭격된 순서대로 각 폭격에 대하여 파괴된 블럭의 개수를 출력한다.

예제1

  1. 예제 1

    입력
    7
    4 10 11
    3 9 11
    3 7 8
    2 7 11
    1 1 12
    3 3 4
    2 2 5
    4
    5 1
    11 2
    10 3
    9 4
    
    예상 출력
    1 2 2 0