AtCoder Beginner Contest 298 C問題 Cards Query Problem
問題
提出解答
問題の概要
から までの番号がついている 個の空の箱と何も書かれていないカードが無数になる.
次の 個のクエリを順に処理せよ.
- Type 1: 新たに と書かれたカードを用意し, 箱 に入れる.
- Type 2: 箱 に入っているカードに書かれた数を昇順で全て答える
- Type 3: と書かれたカードが入っている箱を昇順で全て答える.
制約
- Type 1
- Type 2
- 箱 にはカードが 枚以上入っている.
- Type 3
- と書かれたカードが入っている箱が存在する.
- 出力すべき整数の数は 個以下である.
解法
次の つのデータ構造を用意する.
- に対して, 多重集合 (またはリスト) を箱 が入っているカード全体の集合 (リスト) とする.
- に対して, 集合 を と書かれたカードが入っている箱全体の集合とする.
このとき, 次のように処理すれば良い.
- Type 1: に を追加し, に を追加する.
- Type 2: の要素を昇順ソートし, 出力する.
- Type 3: の要素を昇順にソートし, 出力する.
計算量は出力する整数の数を とすると, 時間である.