Count disjoint bit pairs
Your task
Given nums (each in [0, 2^bits)) and the integer bits, count the number of unordered pairs of distinct indices (i, j) with i < j such that nums[i] & nums[j] == 0 (the two values share no set bit). Use the value bits as the bit width. There can be repeated values, and 0 pairs with everything (including other zeros).
Examples
count_disjoint_pairs(nums: list[int], bits: int) -> intExample 1
Input
count_disjoint_pairs([0, 1, 2, 3], 2)Output
4