結果
| 問題 |
No.822 Bitwise AND
|
| コンテスト | |
| ユーザー |
tktk_snsn
|
| 提出日時 | 2021-01-28 23:11:40 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 1,818 ms / 2,000 ms |
| コード長 | 571 bytes |
| コンパイル時間 | 199 ms |
| コンパイル使用メモリ | 82,688 KB |
| 実行使用メモリ | 72,320 KB |
| 最終ジャッジ日時 | 2024-06-26 06:53:25 |
| 合計ジャッジ時間 | 6,179 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 17 |
ソースコード
U = 18
N, K = map(int, input().split())
if N < K:
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