提出 #78209030


ソースコード 拡げる

Copy
N,Q=map(int,input().split())
A=[0]*(N+1)
over_one=[]
#1=
ans=0
#0XOR0
for i in range(Q):
query=list(map(int,input().split()))
if query[0]==1:
x=query[1]
ans^=A[x]
#XOR
A[x]+=1;ans^=A[x] #query1+=1XOR
#0→11
if A[x]==1:
over_one.append(x)
else:
over_one_more=[] #02
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
N,Q=map(int,input().split())
A=[0]*(N+1)

over_one=[]
#いま値が1以上になっている=減らしたい番号
ans=0
#ぜんぶ0ってことは、今ぜんぶのXORは0?だよね?

for i in range(Q):
  query=list(map(int,input().split()))
  if query[0]==1:
    x=query[1]
    ans^=A[x]
    #変更したい番号ぶんのXORを取り除く、取り除いて操作?する
    A[x]+=1;ans^=A[x] #query1の操作、+=1をして、またXORに加える
    
    #0→1に増えた!1以上リストに入れた方がいい
    if A[x]==1:
      over_one.append(x)
  else:
    over_one_more=[] #減らしたあとも0にならない、2以上だったものたち
    #query2の操作、1以上のものはすべて減らすぜのターン
    for m in over_one:
      ans^=A[m];A[m]-=1
      ans^=A[m]
      if A[m]>=1:
        over_one_more.append(m)
    over_one=over_one_more
  print(ans)
  
  
    
    

提出情報

提出日時
問題 C - Inc, Dec, Xor
ユーザ watacco
言語 Python (PyPy 3.11-v7.3.20)
得点 300
コード長 946 Byte
結果 AC
実行時間 1190 ms
メモリ 136448 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 2
AC × 15
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 52 ms 79620 KiB
00_sample_01.txt AC 52 ms 79588 KiB
01_random_00.txt AC 1072 ms 112608 KiB
01_random_01.txt AC 1080 ms 112624 KiB
01_random_02.txt AC 1107 ms 112780 KiB
01_random_03.txt AC 1160 ms 134196 KiB
01_random_04.txt AC 1094 ms 112620 KiB
01_random_05.txt AC 1133 ms 112932 KiB
01_random_06.txt AC 1123 ms 112772 KiB
01_random_07.txt AC 1139 ms 112956 KiB
01_random_08.txt AC 1149 ms 112876 KiB
01_random_09.txt AC 1167 ms 112692 KiB
01_random_10.txt AC 1141 ms 112980 KiB
01_random_11.txt AC 1190 ms 136448 KiB
01_random_12.txt AC 1138 ms 133868 KiB


2026-08-09 (日)
00:48:09 +09:00