풀이시간: 40분 (런타임 오류)
import heapq as hq
pq = []
minus_c = {}
T = int(input())
for _ in range(T):
num = int(input())
if num < 0:
hq.heappush(pq, -num)
if -num in minus_c:
minus_c[-num] += 1
else:
minus_c[-num] = 1
elif num > 0:
hq.heappush(pq, num)
else:
if len(pq) > 0:
root_node = hq.heappop(pq)
if minus_c[root_node] > 0:
print(-root_node)
minus_c[root_node] -= 1
else:
print(root_node)
else:
print(0)
import sys
import heapq as hq
input = sys.stdin.readline
pq = []
for _ in range(int(input())):
x = int(input())
if x:
hq.heappush(pq, (abs(x), x))
else:
print(hq.heappop(pq)[1] if pq else 0)
import sys
import heapq as hq
input = sys.stdin.readline
min_heap = [] # 양수
max_heap = [] # 음수
for _ in range(int(input())):
x = int(input())
if x:
if x > 0:
hq.heappush(min_heap, x)
else:
hq.heappush(max_heap, -x)
else:
if min_heap:
if max_heap:
if min_heap[0] < abs(-max_heap[0]):
print(hq.heappop(min_heap))
else:
print(-hq.heappop(max_heap))
else:
print(hq.heappop(min_heap))
else:
if max_heap:
print(-hq.heappop(max_heap))
else:
print(0)