Skip to main content

백준 6064 카잉 달력

·113 words·1 min· loading

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

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

살짝 어려웠다.

x의 값을 고정시켜놓는다는 아이디어가 중요하다.

x는 m%x이므로, x에 아무리 m을 더해도 x값은 같다.

x에 m을 계속 더하면서, x%n이 y%n(0일경우도대비)이 되는 x값을 구한다.

만일 x가 m*n보다 커진다면, 이는 무한루프이므로 -1을 출력한다.

##처음코드##

for _ in range(int(input())):    m,n,x,y=map(int,input().split())    pivot=x%m
    if pivot==0:pivot=m    tmp=pivot    while True:        a=tmp%n
        if not a: a=n        if a==y:            print(tmp)            break
        tmp+=m        if tmp>(m*n):            print(-1)            break

##함수사용 깔끔 코드##

def kain(m,n,x,y):    while x<m*n:        if x%n==y%n :            print(x)
            return        x+=m    print(-1)    return  
for _ in range(int(input())):    m,n,x,y=map(int,input().split())
    kain( m,n,x,y)

난웰케 머리가 나쁠까