100 atcoder#ABC217E. [ABC217E] Sorting Queries

[ABC217E] Sorting Queries

配点 : 500500

問題文

空の列 AA があります。クエリが QQ 個与えられるので、与えられた順番に処理してください。 クエリは次の 33 種類のいずれかです。

  • 1 x : AA の最後尾に xx を追加する。
  • 2 : AA の最初の要素を出力する。その後、その要素を削除する。このクエリが与えられるとき、AA は空でないことが保証される。
  • 3 : AA を昇順にソートする。

制約

  • 1Q2×1051 \leq Q \leq 2 \times 10^5
  • 0x1090 \leq x \leq 10^9
  • クエリ 2 が与えられるとき、AA は空でない。
  • 入力は全て整数である。

入力

入力は以下の形式で標準入力から与えられる。

QQ

query1\mathrm{query} 1

query2\mathrm{query} 2

\vdots

queryQ\mathrm{query} Q

ii 番目のクエリ queryi\mathrm{query} i では、まずクエリの種類 cic_i1,2,31, 2, 3 のいずれか)が与えられる。 ci=1c_i = 1 の場合はさらに整数 xx が追加で与えられる。

すなわち、各クエリは以下に示す 33 つの形式のいずれかである。

11 xx

22

33

出力

ci=2c_i = 2 を満たすクエリの回数を qq として qq 行出力せよ。 jj (1jq)(1 \leq j \leq q) 行目では jj 番目のそのようなクエリに対する答えを出力せよ。

8
1 4
1 3
1 2
1 1
3
2
1 0
2
1
2

入力例 11 において、 ii 番目のクエリを処理した後の AA の状態を ii 行目に示すと以下のようになります。

  • (4)(4)
  • (4,3)(4, 3)
  • (4,3,2)(4, 3, 2)
  • (4,3,2,1)(4, 3, 2, 1)
  • (1,2,3,4)(1, 2, 3, 4)
  • (2,3,4)(2, 3, 4)
  • (2,3,4,0)(2, 3, 4, 0)
  • (3,4,0)(3, 4, 0)
9
1 5
1 5
1 3
2
3
2
1 6
3
2
5
3
5

入力例 22 において、 ii 番目のクエリを処理した後の AA の状態を ii 行目に示すと以下のようになります。

  • (5)(5)
  • (5,5)(5, 5)
  • (5,5,3)(5, 5, 3)
  • (5,3)(5, 3)
  • (3,5)(3, 5)
  • (5)(5)
  • (5,6)(5, 6)
  • (5,6)(5, 6)
  • (6)(6)