結果
問題 | No.822 Bitwise AND |
ユーザー |
![]() |
提出日時 | 2025-04-16 16:04:41 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,821 bytes |
コンパイル時間 | 444 ms |
コンパイル使用メモリ | 81,664 KB |
実行使用メモリ | 81,664 KB |
最終ジャッジ日時 | 2025-04-16 16:11:33 |
合計ジャッジ時間 | 4,357 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 2 WA * 7 TLE * 1 -- * 7 |
ソースコード
def main(): import sys N, K = map(int, sys.stdin.readline().split()) if N == 0: if K == 0: print(1) else: print("INF") return # Generate free bits (positions where N has 0) free_bits = [] for bit in range(30): # Check up to 30 bits if (N & (1 << bit)) == 0: free_bits.append(bit) # Check for INF condition INF = False for i in range(len(free_bits)): for j in range(i + 1, len(free_bits)): p = free_bits[i] q = free_bits[j] if (1 << q) - (1 << p) <= K: INF = True break if INF: break if INF: print("INF") return # Count valid pairs count = 0 # Generate all possible a's len_free = len(free_bits) for a_mask in range(0, 1 << len_free): a = 0 for i in range(len_free): if a_mask & (1 << i): a_bit = free_bits[i] a |= (1 << a_bit) if (a & N) != 0: continue # Compute remaining bits (free_bits not in a) remaining_bits = [] for bit in free_bits: if (a & (1 << bit)) == 0: remaining_bits.append(bit) len_remaining = len(remaining_bits) # Generate all possible b's from remaining_bits for b_mask in range(0, 1 << len_remaining): b = 0 for i in range(len_remaining): if b_mask & (1 << i): b_bit = remaining_bits[i] b |= (1 << b_bit) if a > b: continue if b - a > K: continue count += 1 print(count) if __name__ == "__main__": main()