結果

問題 No.1863 Xor Sum 2...?
コンテスト
ユーザー LyricalMaestro
提出日時 2026-02-09 01:06:48
言語 PyPy3
(7.3.17)
結果
WA  
実行時間 -
コード長 1,170 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 372 ms
コンパイル使用メモリ 82,548 KB
実行使用メモリ 103,512 KB
最終ジャッジ日時 2026-02-09 01:06:53
合計ジャッジ時間 4,915 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 2 WA * 26
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

## https://yukicoder.me/problems/no/1863


def main():
    N = int(input())
    A = list(map(int, input().split()))
    B = list(map(int, input().split()))

    answer = 0
    left = 0
    right = 0

    upper = A[left]
    b = B[left] & 1
    lower_map = [0, 0]
    lower_map[b] = 1
    while left < N:

        while right + 1 < N and upper & A[right + 1] == 0:
            right += 1
            upper = upper | A[right]
            b = b ^ (B[right] & 1)
            lower_map[b] += 1
        answer += lower_map[0]
        if left < right:
            upper -= A[left]
            new_lower_map = [0, 0]
            b_ = B[left] & 1
            for j in range(2):
                new_lower_map[j ^ b_] = lower_map[j]
            new_lower_map[b_] -= 1
            lower_map = new_lower_map
            left += 1
        else:
            if right + 1 < N:
                left += 1
                right += 1
                upper = A[left]
                b = B[left] & 1
                lower_map = [0, 0]
                lower_map[b] = 1
            else:
                break
    print(answer)

        
        










if __name__ == "__main__":
    main()
0