크리스마스 선물

시간 제한2초메모리 제한512 MB

요약
방문을 순서대로 처리하면서, 창고에서는 선물을 추가하고 아이를 만나면 현재 가진 선물 중 가장 큰 값을 준다.
난이도

보통10점 중 4점

유형
힙, 시뮬레이션, 그리디
정답자
아직 제출이 없습니다

문제

크리스마스가 되면 산타가 착한 아이에게 선물을 나눠준다. 썰매가 작아서 선물을 한 번에 다 실을 수 없으므로, 산타는 세계 곳곳에 세워 둔 거점에 들러 선물을 채운다. 착한 아이를 만나면 그때 들고 있는 선물 중에서 가치가 가장 큰 것 하나를 건넨다.

산타가 차례대로 방문한 거점과 아이의 기록이 주어진다. 아이를 만날 때마다 건넨 선물의 가치를 출력한다. 들고 있는 선물이 하나도 없으면 -1을 출력한다.

입력

첫 줄에 산타가 거점과 아이를 방문한 횟수 nn이 주어진다. (1≤n≤50001 \le n \le 5000)

다음 nn개의 줄에는 방문 기록이 한 줄에 하나씩 순서대로 주어진다. 각 줄은 정수 aa로 시작한다. aa가 0이면 아이를 만난 것이다. aa가 0이 아니면 거점에 들른 것이고, 같은 줄에 그 거점에서 채운 선물 aa개의 가치가 공백으로 구분되어 이어진다. (1≤a≤1001 \le a \le 100)

선물의 가치는 100,000보다 작은 양의 정수이다.

출력

aa가 0인 줄마다 그 아이에게 건넨 선물의 가치를 한 줄에 하나씩 출력한다. 건넬 선물이 없으면 그 줄에 -1을 출력한다. aa가 0인 줄은 적어도 하나 있다.

예제2

  1. 예제 1

    입력
    5
    0
    2 3 2
    0
    0
    0
    
    예상 출력
    -1
    3
    2
    -1
    
  2. 예제 2

    입력
    6
    1 10
    0
    0
    3 4 9 4
    0
    0
    
    예상 출력
    10
    -1
    9
    4