There is a special square room with mirrors on each of the four walls. Except for the southwest corner, there are receptors on each of the remaining corners, numbered0
,1
, and2
.
The square room has walls of lengthp
, and a laser ray from the southwest corner first meets the east wall at a distanceq
from the0
th receptor.
Return the number of the receptor that the ray meets first. (It is guaranteed that the ray will meet a receptor eventually.)
Example 1:
Input:
p =
2
, q =
1
Output:
2
Explanation:
The ray meets receptor 2 the first time it gets reflected back to the left wall.
Note:
1
<
= p
<
= 1000
0
<
= q
<
= p
class Solution(object):
def mirrorReflection(self, p, q):
k = 1
while (q * k % p): k += 1
if q * k / p % 2 and k % 2: return 1
if q * k / p % 2 == 0 and k % 2: return 0
if q * k / p % 2 and k % 2 == 0: return 2
return -1