목차

걸어가요

ps
링크acmicpc.net/…
출처BOJ
문제 번호34036
문제명걸어가요
레벨골드 3
분류

연립합동식

시간복잡도O(n^2logm)
인풋사이즈n<=8, m<=100
사용한 언어Python 3.13
제출기록34536KB / 36ms
최고기록36ms
해결날짜2025/07/03

풀이

코드

"""Solution code for "BOJ 34036. 걸어가요".

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

Tags: [linear congruences]
"""

from teflib import numtheory


def main():
    N = int(input())
    x_and_s = [[int(x) for x in input().split()] for _ in range(N)]

    x, s = zip(*x_and_s)
    try:
        pos, lcm = numtheory.linear_congruences(x, s, also_return_lcm=True)
        max_x = max(x for x, s in x_and_s)
        k = (max_x - pos + lcm - 1) // lcm
        answer = pos + lcm * k
        print(answer)
    except ValueError:
        print('-1')


if __name__ == '__main__':
    main()