線形探索を行う解法だと、最悪 回の探索が必要になってしまい、TLEしてしまいます。
そこで、キーを「 の要素 」、値を「 を満たす の順序付き集合」となる連想配列 を考え、以下のようにクエリを処理することで、十分高速に処理することができます。
1 i x
: から を削除し、 に を追加する。そして、 を に更新する。
2 x
: の最小値を取得する。
3 x
: の最大値を取得する。
C++ だと標準ライブラリの map や set を用いて処理することができます。 Python の場合、 MojaCoder 環境では自作するか有志の方が作ってくれたSortedSet を使うなどの方法で処理をする必要があります。