시간 여행과 Multiset
면접 대비시간 제한2초메모리 제한512 MB
시간 축을 가진 multiset에서 삽입, 삭제, 개수 질의를 처리한다. 값 x의 시각 t에서의 개수는 t 이하 시각의 이전 연산들로 결정된다.
문제
성관이는 시간 여행을 하는 타임머신을 만들었다. 하지만 여기는 알고리즘 문제이므로, 그는 멋진 일을 하는 대신 시간 여행을 multiset에 적용하기로 했다.
시간 여행이 가능한 multiset은 다음 세 가지 연산을 지원한다.
- 시간 로 가서 multiset에 정수 를 하나 넣는다.
- 시간 로 가서 multiset에서 정수 를 하나 뺀다. 시간 에 정수 가 하나 이상 들어 있음이 보장된다.
- 시간 에 multiset에 정수 가 몇 개 들어 있는지 출력한다.
시간 에 넣은 정수는 시간 부터 계속 남아 있고, 시간 에 뺀 정수는 시간 부터 사라진다. 그래서 시간 에 들어 있는 정수 의 개수는 지금까지 처리한 연산 중 시간이 이하인 1번 연산의 수에서 시간이 이하인 2번 연산의 수를 뺀 값이다.
예를 들어 정수 1을 시간 2에 두 개 넣고 시간 5에 하나 뺐다고 하자. 정수 1은 시간 2부터 4까지 두 개, 시간 5부터는 한 개 남아 있다. 여기서 시간 4에 정수 1을 하나 더 빼면 시간 2부터 3까지 두 개, 시간 4에 한 개가 되고 시간 5부터는 남지 않는다. 이 상태에서 시간 5에 정수 1을 빼는 연산은 그 시점에 정수 1이 없으므로 입력으로 주어지지 않는다.
연산은 입력에 주어진 순서대로 처리한다. 3번 연산의 답에는 그 연산보다 앞에 있는 1번 연산과 2번 연산만 반영한다.
위와 같이 동작하는 프로그램을 작성하시오.
입력
첫째 줄에 질의의 개수 이 주어진다. ()
다음 개의 줄에 질의가 한 줄에 하나씩 주어진다. 각 줄은 세 자연수 , , 로 이루어진다. (, ) 는 연산의 종류이고, 와 는 문제 설명의 와 이다.
출력
가 3인 질의마다 그 답을 한 줄에 하나씩 출력한다.