본문 바로가기
알고리즘/[python] 백준 BOJ

[python] 백준 6064 카잉 달력

by Alan_Kim 2023. 1. 3.
728x90
반응형

https://www.acmicpc.net/problem/6064

 

6064번: 카잉 달력

입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다.

www.acmicpc.net

 

문제 해결

x+ M*a = y + N*b 를 만족하는 자연수 a,와 b 가 있어야 정상이다. 만약 존재하지 않는다면 -1

그러면 (x + M*a - y) % N = 0 이 되어야 한다.

a는 N 이하이다. N보다 커지면 위의 식( (x + M*a - y) % N)의 나머지가 반복되기 때문에 더 해봤자 존재하지 않는 것이다.

 

CODE

import sys
input = sys.stdin.readline

t = int(input())
for _ in range(t):
    m, n, x, y = map(int, input().split())
    while x<= m*n:
        if (x-y)%n == 0:
            print(x)
            break
        x += m
    else:
        print(-1)
728x90
반응형

댓글