atcoder#ABC298C. [ABC298C] Cards Query Problem

[ABC298C] Cards Query Problem

配点 : 300300

問題文

11 から NN までの番号がついた NN 個の空の箱と、何も書かれていない無数のカードがあります。 QQ 個のクエリが与えられるので、順番に処理してください。クエリは次の 33 種類のいずれかです。

  • 1 i j  ⁣:\colon カードを 11 枚選んで数 ii を書き込み、そのカードを箱 jj に入れる
  • 2 i  ⁣:\colonii に入っているカードに書かれた数を昇順ですべて答える
  • 3 i  ⁣:\colonii が書かれたカードが入っている箱の番号を昇順ですべて答える

ただし、以下の点に注意してください。

  • 22 番目の形式のクエリにおいては、箱 ii の中に同じ数が書かれたカードが複数枚あるときは、入っている枚数と同じ回数だけその数を出力する
  • 33 番目の形式のクエリにおいては、数 ii が書かれたカードが同じ箱に複数枚入っている場合でも、その箱の番号は 11 度だけ出力する

制約

  • 1N,Q2×1051 \leq N, Q \leq 2 \times 10^5
  • 11 番目の形式のクエリについて、- 1i2×1051 \leq i \leq 2 \times 10^5
    • 1jN1 \leq j \leq N
  • 1i2×1051 \leq i \leq 2 \times 10^5
  • 1jN1 \leq j \leq N
  • 22 番目の形式のクエリについて、- 1iN1 \leq i \leq N
    • このクエリが与えられる時点で箱 ii にカードが入っている
  • 1iN1 \leq i \leq N
  • このクエリが与えられる時点で箱 ii にカードが入っている
  • 33 番目の形式のクエリについて、- 1i2×1051 \leq i \leq 2 \times 10^5
    • このクエリが与えられる時点で数 ii が書かれたカードが入っている箱が存在する
  • 1i2×1051 \leq i \leq 2 \times 10^5
  • このクエリが与えられる時点で数 ii が書かれたカードが入っている箱が存在する
  • 出力するべき数は合計で 2×1052 \times 10^5 個以下
  • 入力はすべて整数

入力

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

NN

QQ

query1\mathrm{query}_1

query2\mathrm{query}_2

\vdots

queryQ\mathrm{query}_Q

ただし、queryq\mathrm{query}_qqq 個目のクエリを表しており、次のいずれかの形式で与えられる。

11 ii jj

22 ii

33 ii

出力

22 番目の形式のクエリと 33 番目の形式のクエリに対し、順番に答えを出力せよ。 各クエリでは出力するべき要素を昇順に空白区切りで出力し、クエリごとに改行せよ。

5
8
1 1 1
1 2 4
1 1 4
2 4
1 1 4
2 4
3 1
3 2
1 2
1 1 2
1 4
4

クエリを順に処理していきます。

  • カードに 11 を書き込み、箱 11 に入れます。
  • カードに 22 を書き込み、箱 44 に入れます。
  • カードに 11 を書き込み、箱 44 に入れます。
  • 44 に入っているカードに書かれた数は 1,21, 2 です。- 1,21, 2 の順に出力してください。
  • 1,21, 2 の順に出力してください。
  • カードに 11 を書き込み、箱 44 に入れます。
  • 44 に入っているカードに書かれた数は 1,1,21, 1, 2 です。- 1122 度出力することに注意してください。
  • 1122 度出力することに注意してください。
  • 11 が書かれたカードが入っている箱は箱 1,41, 4 です。- 箱 44 には数 11 が書かれたカードが 22 枚入っていますが、4411 回しか出力しないことに注意してください。
  • 44 には数 11 が書かれたカードが 22 枚入っていますが、4411 回しか出力しないことに注意してください。
  • 22 が書かれたカードが入っている箱は箱 44 です。
1
5
1 1 1
1 2 1
1 200000 1
2 1
3 200000
1 2 200000
1