안녕하세요. 오늘은 크리스마스 선물을 배달할 거예요.
https://www.acmicpc.net/problem/14235
우선순위 큐를 쓰면 쉽습니다.
0이 주어지면 top을 출력하고 아니면 수를 다 pq에 넣으면 됩니다.
#include <iostream>
#include <queue>
#define ll long long
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
ll N, i, x, y;
priority_queue <ll> pq;
cin >> N;
for (i = 1; i <= N; i++)
{
cin >> x;
if (x == 0)
{
if (pq.size())
{
cout << pq.top() << "\n";
pq.pop();
}
else cout << "-1\n";
}
else
{
while (x--)
{
cin >> y;
pq.push(y);
}
}
}
}
감사합니다.