의도된 시간복잡도
🔒시간 제한
1.000 S메모리 제한
128 MB제출 수
10정답 수
8정답률
50.000%
문제 설명
아래의 쿼리를 처리하는 우선순위 큐를 구현해 보자.
사용 언어의 라이브러리 상에 우선순위 큐가 존재한다면 비교적 쉽게 해결할 수 있을 테지만, 한 번쯤 직접 구현해 보는 것도 좋은 경험이 된다.
- $push$ $x$ : 정수 $x$를 우선순위 큐에 삽입한다. $(1 ≤ x ≤ 10^9)$
- $top$ : 우선순위 큐에서 가장 큰 정수를 출력한다. 만약 우선순위 큐가 비어 있다면 $-1$을 출력한다.
- $pop$ : 우선순위 큐에서 가장 큰 정수를 제거한다. 만약 우선순위 큐가 비어 있다면 아무것도 수행하지 않는다.
- $size$ : 우선순위 큐에 들어있는 정수의 개수를 출력한다.
- $empty$ : 우선순위 큐가 비어 있다면 $1$을, 비어 있지 않다면 $0$을 출력한다.
입력 설명
첫째 줄에 쿼리의 개수 $Q$가 주어진다. $(1 ≤ Q ≤ 200,000)$
둘째 줄부터 $Q$개의 줄에 걸쳐 임의의 쿼리가 주어진다.
출력 설명
출력을 요구하는 쿼리가 주어질 때마다, 그에 맞는 답을 차례대로 출력한다.
예시 1
입력
13
push 2
push 5
push 1
top
pop
top
size
push 5
top
pop
size
pop
empty
출력
5
2
2
5
2
0
기여
만든 사람 : pill27211