TopcoderArchiveVisit Topcoder
SRM20 Dec 2008
SRM 430

BitwiseEquations

Problem statement, definition, constraints, and public examples.

Problem Statement

You are given two positive integers x and k. Return the k-th smallest positive integer y (where k is 1-based) for which the following equation holds:
x + y = x | y
where '|' denotes the bitwise OR operator.

Definition

Class:
BitwiseEquations
Method:
kthPlusOrSolution
Parameters:
int, int
Returns:
long
Method signature:
long kthPlusOrSolution(int x, int k)
(be sure your method is public)

Constraints

  • x will be between 1 and 2,000,000,000, inclusive.
  • k will be between 1 and 2,000,000,000, inclusive.

Examples

  1. 5
    1
    Returns: 2
    The first positive integer for which the equation holds is 2. You can check that 5+2=7 as well as 5|2=7. Both plus and bitwise OR look like the following: 101 + 10 --- 111
  2. 5
    5
    Returns: 18
    The fifth number for which the equation 5 + y = 5 | y holds is 18. The first four solutions are 2,8,10,16. The binary sum for 18 looks like the following: 101 +10010 ----- 10111
  3. 10
    3
    Returns: 5
    The third solution is 5. The first two solutions are 1 and 4.
  4. 1
    1000000000
    Returns: 2000000000
Back to all problems