結果

問題 No.1444 !Andd
ユーザー gew1fw
提出日時 2025-06-12 16:25:43
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 975 bytes
コンパイル時間 179 ms
コンパイル使用メモリ 82,344 KB
実行使用メモリ 86,616 KB
最終ジャッジ日時 2025-06-12 16:26:22
合計ジャッジ時間 17,954 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other WA * 20
権限があれば一括ダウンロードができます

ソースコード

diff #

N = int(input())
A = list(map(int, input().split()))

current_states = set()
current_states.add((False, 1))  # Initial state: X=1 (low, lower 10 bits are 1)

for a in A:
    next_states = set()
    for (h, l) in current_states:
        # Multiply operation
        if a == 0:
            new_h = False
            new_l = 0
            next_states.add((new_h, new_l))
        else:
            if h:
                new_h = True
                new_l = (l * a) % 1024
                next_states.add((new_h, new_l))
            else:
                product = l * a
                if product >= 1024:
                    new_h = True
                    new_l = product % 1024
                else:
                    new_h = False
                    new_l = product
                next_states.add((new_h, new_l))
        # AND operation
        new_l_and = l & a
        next_states.add((False, new_l_and))
    current_states = next_states
    print(len(current_states))
0