페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#4892

우선순위 큐가 3개 1s 256MB

문제

각각 기준을 갖는 정수 type의 우선순위 큐가 3개 존재한다.

 

1. max_pq : 값이 큰게 우선순위이다.

2. min_pq : 값이 작은게 우선순위이다.

3. abs_pq : 절대값이 작은게 우선순위이다. 절대값이 같다면, 값이 작은게 우선순위이다.

 

쿼리 수 q가 주어지고, q개의 정수 x가 주어지면 아래 두가지 동작을 수행한다.

 

x != 0, push(x)

각각 pq에 x를 push 한다.

 

x == 0, pop()

각각 pq에서 pop을 진행한다.

pop이 되는 값을 max_pq, min_pq, abs_pq 순으로 출력한다.

pq가 비어있다면 -1 한개만 출력한다.


입력

첫 줄에 쿼리 수 q 가 주어진다.

다음 둘째 줄부터 q개의 줄에 걸쳐 x가 주어진다.

 

q <= 100,000

x : int 범위


출력

x가 0인 경우 한 줄에 max_pq의 top , min_pq의 top , abs_pq의 top 을 한 칸씩 띄어서 출력한다.

만약, pq가 비어있는 경우 -1 한개만 출력한다.


예제

13

-1
2
3
-10
4
0
0
-3
0
0
0
0
0
4 -10 -1

3 -1 2
2 -3 -3
-1 2 3
-3 3 4
-10 4 -10
-1

출처

teriusu

로그인해야 코드를 작성할 수 있어요.