우선순위큐 관리
우선순위 큐(Priority Queue)를 이용하여 정수 쌍 \((x, y)\)를 관리하는 프로그램을 작성하시오.
\(N\)개의 명령이 주어질 때, 출력이 필요한 명령의 결과를 순서대로 출력하라.
우선순위는 다음과 같은 기준으로 결정된다.
- 첫 번째 정수 \(x\)가 큰 원소가 높은 우선순위를 가진다.
- 만약 첫 번째 정수 \(x\)가 같다면, 두 번째 정수 \(y\)가 작은 원소가 높은 우선순위를 가진다.
명령은 다음 중 하나이다.
- push x y: 정수 쌍 \((x, y)\)를 넣는다.
- pop: 현재 우선순위가 가장 높은 정수 쌍의 \(x\)와 \(y\)를 공백으로 구분하여 출력하고 제거한다. 만약 비어 있으면 0 0을 출력한다.
입력
첫째 줄에 명령의 수 \(N\)이 주어진다.
둘째 줄부터 \(N\)개의 줄에 명령이 하나씩 주어진다.
출력
pop 명령의 결과를 한 줄에 하나씩 출력한다.
제한사항
- \(1 \le N \le 100000\)
- push로 들어오는 정수 \(x, y\)는 \(1 \le x, y \le 10^9\) 이다.
- 출력하는 명령(pop)은 최소 하나 이상 주어진다.
예제 입력 1
7
push 3 5
push 3 2
push 5 1
pop
pop
pop
pop
예제 출력 1
5 1
3 2
3 5
0 0
코멘트