結果
問題 |
No.1863 Xor Sum 2...?
|
ユーザー |
![]() |
提出日時 | 2022-03-07 00:20:34 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 314 ms / 2,000 ms |
コード長 | 730 bytes |
コンパイル時間 | 185 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 21,960 KB |
最終ジャッジ日時 | 2024-07-21 11:01:59 |
合計ジャッジ時間 | 7,600 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 28 |
ソースコード
import sys input = sys.stdin.readline N=int(input()) A=list(map(int,input().split())) B=list(map(int,input().split())) XOR=[0] for b in B: XOR.append(XOR[-1]^b) SA=[0] SB=[0] for i in range(1,N+1): if XOR[i]==0: SA.append(SA[-1]+1) SB.append(SB[-1]) else: SA.append(SA[-1]) SB.append(SB[-1]+1) ANS=0 UA=0 XA=0 ind=0 for i in range(N): while True: if ind<N and UA+A[ind]==XA^A[ind]: UA+=A[ind] XA^=A[ind] ind+=1 else: break #print(i,ind) # i から ind-1 まで。 if XOR[i]==0: ANS+=SA[ind]-SA[i] else: ANS+=SB[ind]-SB[i] #print(ANS) UA-=A[i] XA^=A[i] print(ANS)