[๋ฐฑ์ค€-6064] ์นด์ž‰ ๋‹ฌ๋ ฅ / Python

๐Ÿ“š Problem Solving/Baekjoon

 

6064๋ฒˆ: ์นด์ž‰ ๋‹ฌ๋ ฅ

์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋Š” ํ‘œ์ค€ ์ž…๋ ฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ž…๋ ฅ์€ T๊ฐœ์˜ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์ž…๋ ฅ์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋Š” ํ•œ ์ค„๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

www.acmicpc.net

import sys


def func(m, n, x, y):
    while x <= m * n:
        if (x - y) % n == 0:
            return x
        x += m
    return -1


for _ in range(int(sys.stdin.readline())):
    m, n, x, y = map(int, sys.stdin.readline().split())
    print(func(m, n, x, y))

 

ํ•ด์„ค

๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1) (k-x)%m = 0

2) (k-y)%n = 0

์—ฌ๊ธฐ์„œ ์•Œ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์‹ค์€ k๋Š” x์— m์„ ๊ณ„์† ๋”ํ•œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜, k๋Š” y์— n์„ ๊ณ„์† ๋”ํ•œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

x์— m์„ ๊ณ„์† ๋”ํ•ด์ค€ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๊ฐ€ k์ด๋ฏ€๋กœ ๊ทธ ๊ฐ’์— y๋ฅผ ๋นผ๊ณ  n์œผ๋กœ ๋‚˜๋ˆ  ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋ฉด ๋‹ต์ด๋‹ค.