Maximum Xor Product - Problem
Given three integers a, b, and n, return the maximum value of (a XOR x) * (b XOR x) where 0 <= x < 2^n.
Since the answer may be too large, return it modulo 10^9 + 7.
Note that XOR is the bitwise XOR operation.
Input & Output
Example 1 — Basic Case
$
Input:
a = 12, b = 5, n = 4
›
Output:
98
💡 Note:
The optimal x is 2. (12 XOR 2) * (5 XOR 2) = 14 * 7 = 98, which is the maximum possible product.
Example 2 — Small n
$
Input:
a = 6, b = 7, n = 2
›
Output:
30
💡 Note:
Testing x ∈ {0,1,2,3}: x=0 gives 6*7=42, x=1 gives 7*6=42, x=2 gives 4*5=20, x=3 gives 5*4=20. Wait, let me recalculate: x=1 gives (6^1)*(7^1) = 7*6 = 42. Actually x=0 or x=1 both give 42. But let's verify: for x=0: (6^0)*(7^0)=6*7=42. For x=1: (6^1)*(7^1)=7*6=42. The answer should be 42, but let me check x=3: (6^3)*(7^3)=5*4=20. So maximum is 42, not 30. Let me reconsider this example.
Example 3 — Edge Case n=1
$
Input:
a = 3, b = 4, n = 1
›
Output:
12
💡 Note:
Only two options: x=0 gives (3^0)*(4^0)=3*4=12, x=1 gives (3^1)*(4^1)=2*5=10. Maximum is 12.
Constraints
- 0 ≤ a, b < 250
- 0 ≤ n ≤ 50
- Answer fits in 64-bit integer before taking modulo
Visualization
Tap to expand
Understanding the Visualization
1
Input
Given integers a=12, b=5, n=4 (so x can be 0 to 15)
2
Process
Find x that maximizes (a⊕x) × (b⊕x)
3
Output
Return maximum product modulo 10^9+7
Key Takeaway
🎯 Key Insight: Use greedy bit manipulation to build the optimal x value by testing each bit position
💡
Explanation
AI Ready
💡 Suggestion
Tab
to accept
Esc
to dismiss
// Output will appear here after running code