题目描述
空の列 A があります。クエリが Q 個与えられるので、与えられた順番に処理してください。
クエリは次の 3 種類のいずれかです。
1 x
: A の最後尾に x を追加する。
2
: A の最初の要素を出力する。その後、その要素を削除する。このクエリが与えられるとき、A は空でないことが保証される。
3
: A を昇順にソートする。
输入格式
入力は以下の形式で標準入力から与えられる。
Q query 1 query 2 ⋮ query Q
i 番目のクエリ query i では、まずクエリの種類 ci( 1, 2, 3 のいずれか)が与えられる。 ci = 1 の場合はさらに整数 x が追加で与えられる。
すなわち、各クエリは以下に示す 3 つの形式のいずれかである。
1 x
2
3
输出格式
ci = 2 を満たすクエリの回数を q として q 行出力せよ。
j (1 ≤ j ≤ q) 行目では j 番目のそのようなクエリに対する答えを出力せよ。
题目大意
维护一个空序列 A ,有 Q 次查询:
- 在 A 的最后插入一个元素一个元素 x
- 输出 A 的第一个元素并删除这个元素
- 将这个序列排序
8
1 4
1 3
1 2
1 1
3
2
1 0
2
1
2
9
1 5
1 5
1 3
2
3
2
1 6
3
2
5
3
5
提示
制約
- 1 ≤ Q ≤ 2 × 105
- 0 ≤ x ≤ 109
- クエリ
2
が与えられるとき、A は空でない。
- 入力は全て整数である。
Sample Explanation 1
入力例 1 において、 i 番目のクエリを処理した後の A の状態を i 行目に示すと以下のようになります。 - (4) - (4, 3) - (4, 3, 2) - (4, 3, 2, 1) - (1, 2, 3, 4) - (2, 3, 4) - (2, 3, 4, 0) - (3, 4, 0)
Sample Explanation 2
入力例 2 において、 i 番目のクエリを処理した後の A の状態を i 行目に示すと以下のようになります。 - (5) - (5, 5) - (5, 5, 3) - (5, 3) - (3, 5) - (5) - (5, 6) - (5, 6) - (6)