XOR Coloring
Learn this problemProblem statement
You are given an array A containing N integers. For each element, choose exactly one of three actions: color it white, color it black, or leave it uncolored.
Let x be the XOR of all white elements and y be the XOR of all black elements. A coloring is good when x and y are both positive and either x is a multiple of y or y is a multiple of x.
Two colorings are different if at least one indexed element receives a different choice. Return the number of good colorings modulo 1,000,000,007.
Function
countGoodColorings(A: int[]) → intExamples
Example 1
A = [1,2]return = 2Color 1 white and 2 black, or color 2 white and 1 black. The XOR values are 1 and 2, and 2 is a multiple of 1. These are the only good colorings.
Example 2
A = [3,5,7]return = 0Checking all 27 assignments shows that no coloring produces two positive XOR values where either value is a multiple of the other.
Example 3
A = [2,3,9]return = 6There are six good colorings. In each one, all three elements are colored and one color contains one element while the other contains the remaining two. Swapping black and white gives a distinct coloring.
Constraints
1 ≤ N ≤ 121 ≤ A[i] ≤ 100,000
More Microsoft problems
- Maximum Pipeline ThroughputOA · Seen Jul 2026
- Maximum Strong Team SubarrayOA · Seen Jul 2026
- Minimum Cost K-Capable ModelsOA · Seen Jul 2026
- Alphabetically Smallest PalindromeOA · Seen Jul 2026
- Maximum Reward PointsOA · Seen Jul 2026
- Maximum Strength of Every NeuronOA · Seen Jul 2026
- Neural Network Subnetwork StrengthOA · Seen Jul 2026
- XOR MultiplicationOA · Seen Jul 2026