Case = input()
clist = [list(map(int, input().split(' '))) for _ in range(int(Case))]
def gcmf(a, b):
mod = a % b
while(mod > 0):
a = b
b = mod
mod = a % b
return b
for M, N, x, y in clist:
maxv = max(M, N)
minv = min(M, N)
gcm = gcmf(maxv, minv)
lcm = M * N // gcm
cnt = x % (M + 1)
tempY = x
for _ in range(N):
ty = N if tempY % N == 0 else tempY % N
if(ty == y):
break
tempY = ty + M
cnt += M
print(-1 if (cnt > lcm) else cnt)
'# 코딩 문제 관련 > 파이썬' 카테고리의 다른 글
백준 2751번(python) (0) | 2019.05.29 |
---|---|
백준 2750번(python) (0) | 2019.05.29 |
백준 1475번(python) (0) | 2019.05.28 |
백준 2775번(python) (0) | 2019.05.27 |
백준 10250번(python) (0) | 2019.05.27 |