結果
問題 | No.1863 Xor Sum 2...? |
ユーザー |
![]() |
提出日時 | 2022-03-04 22:35:44 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,196 bytes |
コンパイル時間 | 278 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 104,064 KB |
最終ジャッジ日時 | 2024-07-18 21:08:07 |
合計ジャッジ時間 | 4,112 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 10 WA * 18 |
ソースコード
mod = 1000000007eps = 10**-9def main():import sysinput = sys.stdin.readlineN = int(input())A = list(map(int, input().split()))B = list(map(int, input().split()))cs_A = [0] * (N + 1)cxor_A = [0] * (N + 1)for i, a in enumerate(A):cs_A[i + 1] = cs_A[i] + acxor_A[i + 1] = cxor_A[i] ^ acxor_B = [0] * (N + 1)for i, b in enumerate(B):cxor_B[i + 1] = cxor_B[i] ^ bcs_B = [0] * (N + 1)for i in range(N):cs_B[i + 1] = cs_B[i] + cxor_B[i + 1]ans = 0for i in range(N):ok = ing = Nmid = (ok + ng) // 2while ng - ok > 1:c = cs_A[mid + 1] - cs_A[i]x = cxor_A[mid + 1] ^ cxor_A[i]if c == x:ok = midelse:ng = midmid = (ok + ng) // 2if B[i] == 0:ans += 1if ok != i:if cxor_B[i + 1] == 1:ans += cs_B[ok + 1] - cs_B[i + 1]else:ans += (ok - i) - (cs_B[ok + 1] - cs_B[i + 1])#print(i, ans, ok)print(ans)#print(cs_B)if __name__ == '__main__':main()