問題一覧 > 通常問題

No.2195 AND Set

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 140
作問者 : Shirotsume / テスター : 👑 p-adic
1 ProblemId : 8886 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2023-01-17 00:28:44

問題文

空集合 SS があります。以下に説明する QQ 個のクエリを処理してください。ii 番目のクエリは以下の 33 つの種類のうちいずれか 11 つです。

  • クエリ1 : 集合 SS に整数 xix_i を追加する。すでに SSxix_i が含まれているならば、なにもしない。
  • クエリ2 : 集合 SS から整数 xix_i を削除する。 SSxix_i が含まれていないならば、なにもしない。
  • クエリ3 : 集合 SS に含まれるすべての要素の Bitwise AND を出力する。ただし、 SS が空のときは 1-1 を出力する。
Bitwise AND とは(クリックで展開)

22 つの非負整数 X,YX, Y について、 XXYY の Bitwise AND、 XX AND\mathrm{AND} YY は以下のように定義されます。

  • XX AND\mathrm{AND} YY22 進表記したときの 2k2^k (k0)(k \geq 0) の位は、XX22 進表記での 2k2^k の位と、 YY22 進表記での 2k2^k の位の両方が 11 である場合 11 、そうでない場合 00

例えば、 33 AND\mathrm{AND} 5=15 = 1 です。( 22 進表記すると 011011 AND\mathrm{AND} 101=001101 = 001

一般に kk 個の非負整数 p1,p2,,pkp_1, p_2, \dots, p_k の Bitwise AND は (((p1( \dots ((p_1 AND\mathrm{AND} p2)p_2) AND\mathrm{AND} p3)p_3) AND\mathrm{AND} )\dots) AND\mathrm{AND} pk)p_k) と定義され、これは p1,p2,,pkp_1, p_2, \dots, p_k の順番によらないことが証明できます。

制約

  • 入力は全て整数
  • 1Q4×1051 \leq Q \leq 4 \times 10^5
  • 0xi<2300 \leq x_i < 2^{30}
  • クエリは問題文にある形式で与えられる。
  • クエリ3が少なくとも 11 回与えられる。

入力

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

QQ
query1query_1
query2query_2
\vdots
queryQquery_Q
ただし、各クエリ queryiquery_i は、以下の形式のいずれかで与えられる。

クエリ1:

11 xix_i

クエリ2:

22 xix_i

クエリ3:

33

出力

クエリ3 が与えられた回数を XX として、 XX 行出力せよ。 ii 行目には、 ii 回目に与えられたクエリ3に対する答えを出力せよ。

サンプル

サンプル1
入力
7
1 1
1 4
3
2 3
1 1
2 1
3
出力
0
4

11 つめのクエリ 33 が与えられた時点で、 S=(1,4)S = (1, 4) です。よって、 Bitwise AND は 00 です。

22 つめのクエリ 33 が与えられた時点で、 S=(4)S = (4) です。よって、 Bitwise AND は 44 です。

複数回同じ値の追加クエリが来たとしても、複数個の値を追加するわけではないことに注意してください。

サンプル2
入力
20
3  
1 1
2 0
1 3
1 2
1 1
3  
2 0
2 1
2 1
2 1
2 3
2 2
3
1 2
1 2
1 3
2 3
2 1
3
出力
-1
0
-1
2

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。