結果
問題 | No.1958 Bit Game |
ユーザー |
![]() |
提出日時 | 2023-11-01 12:24:26 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 306 ms / 2,000 ms |
コード長 | 734 bytes |
コンパイル時間 | 455 ms |
コンパイル使用メモリ | 82,640 KB |
実行使用メモリ | 143,948 KB |
最終ジャッジ日時 | 2024-09-25 17:55:21 |
合計ジャッジ時間 | 10,941 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 30 |
ソースコード
N, X, Y = map(int, input().split())A = list(map(int, input().split()))B = list(map(int, input().split()))mod = 998244353def solve(a0, a1, b0, b1, v):pre0, pre1 = 1, 0for i in range(2 * N):if i % 2 == 0:dp0 = a0 * pre0dp1 = a1 * pre0 + (a0 + a1) * pre1else:dp0 = (b0 + b1) * pre0 + b0 * pre1dp1 = b1 * pre1pre0 = dp0 % modpre1 = dp1 % modreturn pre1 * v % modans = 0v = 1for i in range(25):a, b = [0] * 2, [0] * 2for j in range(X):a[(A[j] >> i) & 1] += 1for j in range(Y):b[(B[j] >> i) & 1] += 1ans += solve(a[0], a[1], b[0], b[1], v)ans %= modv *= 2v %= modprint(ans)