최소 힙

시간 제한1초메모리 제한128 MB

문제

최소 힙을 사용해 자연수들의 집합을 관리하는 프로그램을 작성하시오. 집합은 처음에 비어 있으며, 다음 두 가지 연산을 처리해야 한다.

  1. 자연수 x가 주어지면 집합에 x를 추가한다.
  2. 0이 주어지면 집합에서 가장 작은 값을 출력하고 그 값을 제거한다. 집합이 비어 있으면 0을 출력한다.

입력

첫째 줄에 연산의 개수 N (1 <= N <= 100,000)이 주어진다. 다음 N개의 줄에는 연산을 나타내는 정수 x가 하나씩 주어진다.

x가 자연수이면 그 값을 집합에 추가한다. x0이면 집합에서 가장 작은 값을 출력하고 제거한다. 각 x0 또는 2^31보다 작은 자연수이며, 음의 정수는 주어지지 않는다.

출력

0이 주어진 연산마다 결과를 한 줄에 하나씩 출력한다. 출력하고 제거해야 할 때 집합이 비어 있으면 0을 출력한다.