結果
| 問題 |
No.822 Bitwise AND
|
| コンテスト | |
| ユーザー |
tktk_snsn
|
| 提出日時 | 2021-01-28 23:05:36 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 618 bytes |
| コンパイル時間 | 175 ms |
| コンパイル使用メモリ | 82,688 KB |
| 実行使用メモリ | 69,120 KB |
| 最終ジャッジ日時 | 2024-06-26 06:48:30 |
| 合計ジャッジ時間 | 4,852 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 15 WA * 2 |
ソースコード
U = 18
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