結果
| 問題 |
No.822 Bitwise AND
|
| コンテスト | |
| ユーザー |
tktk_snsn
|
| 提出日時 | 2021-01-28 23:06:12 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 618 bytes |
| コンパイル時間 | 173 ms |
| コンパイル使用メモリ | 82,304 KB |
| 実行使用メモリ | 73,984 KB |
| 最終ジャッジ日時 | 2024-06-26 06:49:00 |
| 合計ジャッジ時間 | 10,040 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 14 WA * 2 TLE * 1 |
ソースコード
U = 19
N, K = map(int, input().split())
if N == 0:
if K == 0:
print(1)
else:
print("INF")
exit()
bit = []
for i in reversed(range(U)):
if ~(N >> i) & 1:
bit.append(1 << i)
bit.reverse()
sz = len(bit)
val = [0] * (1 << sz)
for S in range(1 << sz):
for i, b in enumerate(bit):
if (S >> i) & 1:
val[S] += b
ans = 0
mask_all = (1 << sz) - 1
for S, x in enumerate(val):
T = mask_all ^ S
mask = T
while True:
if 0 <= x - val[mask] <= K:
ans += 1
if not mask:
break
mask = (mask - 1) & T
print(ans)
tktk_snsn