C++ Priority Queue
C++에는 priority_queue라는 우선순위 큐 자료구조가 있다.
priority_queue는 원소를 추가하거나 삭제할 수 있고, 가장 큰 원소를 확인할 수 있다.
처음에 빈 우선순위 큐 $P$가 있다. $Q$개의 쿼리를 순서대로 처리하라.
쿼리는 다음 중 하나이다.
push x: $P$에 정수 $x$를 추가한다. $(-10^9 \leq x \leq 10^9)$pop: $P$의 가장 큰 원소를 삭제한다.top: $P$의 가장 큰 원소를 출력한다.size: $P$의 크기를 출력한다.
pop, top 쿼리는 항상 올바른 상태에서만 주어진다.
입력
첫 번째 줄에 쿼리의 개수 $Q$가 주어진다. $(1 \leq Q \leq 100\,000)$
두 번째 줄부터 $Q$개의 줄에 걸쳐 쿼리가 하나씩 주어진다.
출력
top, size 쿼리가 주어질 때마다 쿼리의 결과를 한 줄에 하나씩 출력한다.
예제 입력 1
10 push 3 push 7 push 5 top pop top size push 10 pop top
예제 출력 1
7 5 2 5
노트
C++에서 int 값을 저장하는 priority_queue는 다음과 같이 선언할 수 있다.
priority_queue<int> P;
priority_queue를 사용하려면 #include<queue>가 필요하다.