목차

카잉 달력

ps
링크acmicpc.net/…
출처BOJ
문제 번호6064
문제명카잉 달력
레벨실버 1
분류

연립 선형 합동식

시간복잡도O(logNM)
인풋사이즈M<=40,000, N<=40,000
사용한 언어Python
제출기록35820KB / 260ms
최고기록64ms
해결날짜2022/05/10

풀이

코드

"""Solution code for "BOJ 6064. 카잉 달력".

- Problem link: https://www.acmicpc.net/problem/6064
- Solution link: http://www.teferi.net/ps/problems/boj/6064

Tags: [Linear congurences]
"""

from teflib import numtheory


def main():
    T = int(input())
    for _ in range(T):
        M, N, x, y = [int(x) for x in input().split()]
        try:
            a, m = numtheory.linear_congruences((x, y), (M, N),
                                                coprime_moduli=False)
            print(a if a > 0 else a + m)
        except ValueError:
            print('-1')


if __name__ == '__main__':
    main()