모독

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

요약
미니언 체력에 삽입과 삭제 연산을 처리하고 매 연산 직후 반복되는 광역 1 피해에 죽는 미니언 수를 구합니다.
난이도

보통10점 중 7점

유형
수학, 정수론, 스택, 구현
정답자
아직 제출이 없습니다

문제

준원이가 좋아하는 하스스톤 주문 카드 "모독"은 다음과 같은 효과를 지닌다. "모든 하수인에게 피해를 1 줍니다. 하나라도 죽으면, 이 주문을 다시 시전합니다."

다른 말로 설명하면 다음과 같다. 현재 전장에 있는 하수인들의 생명력을 길이 rr인 양의 정수열 a1,…,ara_1, \dots, a_r로 나타내자. "모독" 카드를 쓰면 수열 aa에 아래 연산을 하게 된다.

  1. a1,…,ara_1, \dots, a_r을 모두 1씩 감소시킨다.
  2. ai=0a_i = 0이 되는 원소 aia_i가 하나라도 존재하면, 해당하는 aia_i를 모두 수열에서 제거하고 다시 1.로 돌아간다. 제거된 원소의 개수만큼 "죽은 하수인 수" 카운트를 증가시킨다. 그러한 aia_i가 하나도 없다면 과정을 중단한다.

현재 전장에는 하수인이 하나도 없다. 하스스톤에는 수많은 변수가 있지만, 다음 두 가지 변화만이 발생한다고 가정하자.

  1. 생명력이 kk인 하수인 하나가 전장에 추가된다.
  2. 생명력이 kk인 하수인 하나가 전장에서 제거된다.

각 변화가 발생한 후에, 당신은 "모독" 카드를 한 번 사용했을 때 죽는 하수인 수를 구해야 한다.

모든 변화는 누적된다. 또한 실제로 "모독" 카드를 사용하지 않고, 카드를 사용했을 때의 상황을 가정하는 것일 뿐임에 유의하라.

입력

첫 줄에는 전장에 발생하는 변화의 수인 QQ가 주어진다. (1≤Q≤1,000,0001 \le Q \le 1{,}000{,}000)

그 뒤 QQ개의 줄에는 전장에 발생하는 각 변화를 나타내는 두 정수 T,KT, K가 주어진다. (T=1T = 1 또는 T=2T = 2, 1≤K≤1,000,0001 \le K \le 1{,}000{,}000)

T=1T = 1일 때에는 생명력이 KK인 하수인 하나가 전장에 추가된다.

T=2T = 2일 때에는 생명력이 KK인 하수인 하나가 전장에서 제거된다. 이때 전장에 생명력이 KK인 하수인이 하나 이상 존재함이 보장된다.

출력

입력에 주어진 각 변화가 발생한 뒤, "모독" 카드를 사용한다면 죽게 되는 하수인의 수를 구하여 한 줄에 하나씩 출력한다.

입출력의 크기가 매우 크므로 빠른 입출력 방식을 사용하는 것을 권장한다.

예제1

  1. 예제 1

    입력
    10
    1 1
    1 2
    1 3
    1 4
    2 2
    1 3
    1 2
    1 5
    2 1
    1 1
    
    예상 출력
    1
    2
    3
    4
    1
    1
    5
    6
    0
    6