結果

問題 No.1245 ANDORゲーム(calc)
ユーザー NoneNone
提出日時 2021-10-07 15:39:12
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 301 ms / 2,000 ms
コード長 767 bytes
コンパイル時間 270 ms
コンパイル使用メモリ 82,304 KB
実行使用メモリ 98,648 KB
最終ジャッジ日時 2024-07-23 03:07:03
合計ジャッジ時間 8,306 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 48 ms
51,968 KB
testcase_01 AC 48 ms
52,224 KB
testcase_02 AC 48 ms
52,480 KB
testcase_03 AC 48 ms
52,096 KB
testcase_04 AC 49 ms
52,480 KB
testcase_05 AC 48 ms
52,352 KB
testcase_06 AC 50 ms
52,096 KB
testcase_07 AC 86 ms
73,088 KB
testcase_08 AC 78 ms
69,760 KB
testcase_09 AC 82 ms
70,912 KB
testcase_10 AC 81 ms
71,296 KB
testcase_11 AC 296 ms
96,608 KB
testcase_12 AC 268 ms
96,352 KB
testcase_13 AC 296 ms
96,752 KB
testcase_14 AC 291 ms
96,452 KB
testcase_15 AC 274 ms
96,044 KB
testcase_16 AC 264 ms
96,256 KB
testcase_17 AC 261 ms
96,644 KB
testcase_18 AC 294 ms
98,648 KB
testcase_19 AC 300 ms
96,500 KB
testcase_20 AC 301 ms
96,292 KB
testcase_21 AC 273 ms
98,604 KB
testcase_22 AC 293 ms
98,308 KB
testcase_23 AC 288 ms
96,800 KB
testcase_24 AC 295 ms
96,920 KB
testcase_25 AC 237 ms
98,304 KB
testcase_26 AC 236 ms
98,304 KB
testcase_27 AC 266 ms
98,312 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

N,Q=map(int, input().split())
A=list(map(int, input().split()))
S=list(input().rstrip())
T=list(map(int, input().split()))
L=64
sim1=[1]*L
sco1=[0]*L
sim0=[0]*L
sco0=[0]*L
for i in range(N):
    a,s=A[i],S[i]
    if s=="0":
        for i in range(L):
            sco1[i]+=sim1[i]-(sim1[i]&((a>>i)&1))
            sim1[i]&=((a>>i)&1)
            sco0[i]+=sim0[i]-(sim0[i]&((a>>i)&1))
            sim0[i]&=((a>>i)&1)
    else:
        for i in range(L):
            sco1[i]+=(sim1[i]|((a>>i)&1))-sim1[i]
            sim1[i]|=((a>>i)&1)
            sco0[i]+=(sim0[i]|((a>>i)&1))-sim0[i]
            sim0[i]|=((a>>i)&1)

for t in T:
    res=0
    for i in range(L):
        if t&(1<<i):
            res+=sco1[i]<<i
        else:
            res+=sco0[i]<<i
    print(res)
0