#D. 【模板】堆

    Type: RemoteJudge 1000ms 512MiB

【模板】堆

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

给定一个数列,初始为空,请支持下面三种操作:

  1. 给定一个整数 xx,请将 xx 加入到数列中。
  2. 输出数列中最小的数。
  3. 删除数列中最小的数(如果有多个数最小,只删除 11 个)。

输入格式

第一行是一个整数,表示操作的次数 nn
接下来 nn 行,每行表示一次操作。每行首先有一个整数 opop 表示操作类型。

  • op=1op = 1,则后面有一个整数 xx,表示要将 xx 加入数列。
  • op=2op = 2,则表示要求输出数列中的最小数。
  • op=3op = 3,则表示删除数列中的最小数。如果有多个数最小,只删除 11 个。

输出格式

对于每个操作 22,输出一行一个整数表示答案。

5
1 2
1 5
2
3
2

2
5

提示

【数据规模与约定】

  • 对于 30%30\% 的数据,保证 n15n \leq 15
  • 对于 70%70\% 的数据,保证 n104n \leq 10^4
  • 对于 100%100\% 的数据,保证 1n1061 \leq n \leq 10^61x<2311 \leq x \lt 2^{31}op{1,2,3}op \in \{1, 2, 3\}