結果
| 問題 |
No.822 Bitwise AND
|
| コンテスト | |
| ユーザー |
lam6er
|
| 提出日時 | 2025-04-15 23:08:48 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 926 bytes |
| コンパイル時間 | 372 ms |
| コンパイル使用メモリ | 81,476 KB |
| 実行使用メモリ | 93,004 KB |
| 最終ジャッジ日時 | 2025-04-15 23:11:10 |
| 合計ジャッジ時間 | 3,071 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 15 WA * 2 |
ソースコード
def main():
import sys
N, K = map(int, sys.stdin.readline().split())
if N == 0:
if K >= 1:
print("INF")
else:
print(1)
return
# Generate all a's where a & N == 0
unset_bits = []
for i in range(20): # Cover up to 2^20 which is enough for N <= 1e5
if (N & (1 << i)) == 0:
unset_bits.append(i)
m = len(unset_bits)
a_list = []
for mask in range(0, 1 << m):
a = 0
for j in range(m):
if mask & (1 << j):
a += 1 << unset_bits[j]
a_list.append(a)
total = 0
for d in range(0, K + 1):
cnt = 0
for a in a_list:
if (a & (a + d)) == 0:
x = N + a
y = x + d
if (x & y) == N:
cnt += 1
total += cnt
print(total)
if __name__ == "__main__":
main()
lam6er