A binary power bishop is at point (0, 0) and wants to get to point (**finishX**, **finishY**). In one move, the bishop can go from point (x, y) to any one of the following points: (x + 2^{k}, y + 2^{k}), (x + 2^{k}, y - 2^{k}), (x - 2^{k}, y + 2^{k}), (x - 2^{k}, y - 2^{k}), where k is any non-negative integer. The only restriction on the bishop's moves is that all of them must have distinct values of k.
Return a String[] describing the path of the bishop from (0, 0) to (**finishX**, **finishY**) that contains the minimum possible number of moves. The elements of the return should describe all the points visited by the bishop, in order, including the start and end points. Each element should describe a single point (x, y) in the format "x,y" (quotes for clarity). If there are multiple possible return values, return the one that comes first lexicographically. If it is impossible to reach the finish point, return an empty String[] instead. |