ページが読み込まれませんか? こちらをクリックすると直るかもしれません。
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

ログインしないとコードを書けません。