ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
์ฒซ ๋ฒ์งธ ํด์ ๋ฒ์๊ฐ M, ๋ ๋ฒ์งธ ํด์ ๋ฒ์๊ฐ N์ด๊ณ ํ์ฌ ๋ ๋๊ฐ ๊ฐ๊ฐ x, y๋ก ์ฃผ์ด์ง ๋ ๋ช ๋ฒ์งธ ํด์ธ์ง ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ๋ํ N, M์ ํตํด ์ธ์์ ์ข ๋ง์ด ๋๋ํ๋ ๋ง์ง๋ง ํด๋ฅผ ๊ตฌํ์ฌ์ผ ํ๋๋ฐ ์ด๋ N, M์ ์ต์ ๊ณต๋ฐฐ์์ด๋ค.
์์์ ๊ฐ์ด M, N, x, y์ 10, 12, 3, 9์ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ํด๋น ์ฐ๋๋ฅผ ๊ตฌํ ์ ์๋ค.
x | y |
3 | 3 % 12 = 3 |
13 | 13 % 12 = 1 |
23 | 23 % 12 = 11 |
33 | 33 % 12 = 9 |
์ฆ, x ๊ฐ์ M ๊ฐ์ ๋ ํด์ค ๊ฐ์ N์ผ๋ก ๋๋์์ ๋ y์ ๊ฐ์์ง๊ฒ ๋๋ฉด ์ ๋ต์ ์ฐพ์ ์ ์๋ค. ์ด๋ ๋ธ๋ฃจํธ ํฌ์ค๋ก ๋ชจ๋ ๋ ๋๋ฅผ ํ์ํ๋ ๊ฒ๊ณผ ๋น๊ตํ์ฌ ๋ณด๋ค ํจ์จ์ ์ด๋ค. ๋ง์ฝ x์ ๊ฐ์ด ์ต์ ๊ณต๋ฐฐ์๋ณด๋ค ์ปค์ง๋ค๋ฉด, ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ์ด๋ฏ๋ก -1์ ๋ฐํํ๋ฉด ๋๋ค.
์ฝ๋
from sys import stdin
from math import gcd
if __name__ == "__main__":
t = int(stdin.readline())
for _ in range(t):
m, n, x, y = map(int, stdin.readline().split())
lcm = m * n // gcd(m, n)
while x < lcm:
if (x - 1) % n + 1 == y:
break
x += m
print(x if x < lcm else -1)
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 15649 N๊ณผ M (1) (0) | 2020.07.14 |
---|---|
๋ฐฑ์ค: 3085 ์ฌํ ๊ฒ์ (0) | 2020.07.13 |
๋ฐฑ์ค: 1476 ๋ ์ง ๊ณ์ฐ (0) | 2020.07.11 |
๋ฐฑ์ค: 1748 ์ ์ด์ด ์ฐ๊ธฐ 1 (0) | 2020.07.10 |
๋ฐฑ์ค: 13398 ์ฐ์ํฉ 2 (0) | 2020.07.09 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ