結果

問題 No.2195 AND Set
ユーザー flygonflygon
提出日時 2023-01-20 21:34:45
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 710 ms / 2,000 ms
コード長 588 bytes
コンパイル時間 233 ms
コンパイル使用メモリ 82,048 KB
実行使用メモリ 87,528 KB
最終ジャッジ日時 2024-06-23 09:27:47
合計ジャッジ時間 10,271 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 44 ms
51,584 KB
testcase_01 AC 38 ms
51,840 KB
testcase_02 AC 562 ms
79,864 KB
testcase_03 AC 607 ms
82,168 KB
testcase_04 AC 574 ms
80,512 KB
testcase_05 AC 665 ms
81,280 KB
testcase_06 AC 699 ms
81,408 KB
testcase_07 AC 606 ms
78,988 KB
testcase_08 AC 664 ms
81,420 KB
testcase_09 AC 586 ms
78,568 KB
testcase_10 AC 700 ms
87,528 KB
testcase_11 AC 703 ms
87,144 KB
testcase_12 AC 690 ms
87,020 KB
testcase_13 AC 705 ms
86,992 KB
testcase_14 AC 710 ms
87,020 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

q = int(input())

now = [0]*(35)
s = set()
cnt = 0

for i in range(q):
  l = list(map(int,input().split()))
  t = l[0]
  if t == 1:
    x = l[1]
    if x in s:
      continue
    else:
      s.add(x)
      for j in range(35):
        if (x>>j) & 1:
          now[j] += 1
      cnt += 1
  elif t == 2:
    x = l[1]
    if x in s:
      s.discard(x)
      for j in range(35):
        if (x>>j) & 1:
          now[j] -= 1
      cnt -= 1
  else:
    if cnt == 0:
      print(-1)
      continue
    ans = 0
    for j in range(35):
      if now[j] == cnt:
        ans += 1 << j
    print(ans)

0