아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

카잉 달력

면접 대비

시간 제한1초메모리 제한256 MB

요약
주기 M과 N이 주어질 때 k mod M = x, k mod N = y를 만족하는 가장 작은 k를 구하거나, 없으면 -1을 출력한다.
난이도

보통10점 중 6점

유형
수학, 정수론, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

한 고고학 탐사대가 남아메리카의 잉카 제국이, 뛰어난 문명을 지녔던 카잉 제국을 토대로 세워졌다는 사실을 밝혀냈다. 카잉 제국 사람들은 독특한 달력을 사용한 것으로 알려져 있다. 그들은 MM과 NN 이하인 두 자연수 xx, yy를 이용해 각 해를 ⟨x:y⟩\langle x{:}y \rangle 형식으로 표현했다.

세상이 시작된 첫 번째 해는 ⟨1:1⟩\langle 1{:}1 \rangle, 두 번째 해는 ⟨2:2⟩\langle 2{:}2 \rangle로 표현한다. 어떤 해를 ⟨x:y⟩\langle x{:}y \rangle라 할 때, 그 다음 해 ⟨x′:y′⟩\langle x'{:}y' \rangle는 다음 규칙으로 정해진다.

  • x<Mx < M이면 x′=x+1x' = x + 1이고, 그렇지 않으면 x′=1x' = 1이다.
  • y<Ny < N이면 y′=y+1y' = y + 1이고, 그렇지 않으면 y′=1y' = 1이다.

⟨M:N⟩\langle M{:}N \rangle은 이 달력의 마지막 해이며, 이 해에 세상의 종말이 온다고 전해진다.

예를 들어 M=10M = 10, N=12N = 12라면 첫 번째 해는 ⟨1:1⟩\langle 1{:}1 \rangle, 11번째 해는 ⟨1:11⟩\langle 1{:}11 \rangle, 13번째 해는 ⟨3:1⟩\langle 3{:}1 \rangle, 그리고 마지막인 60번째 해는 ⟨10:12⟩\langle 10{:}12 \rangle로 표현된다.

네 정수 MM, NN, xx, yy가 주어지고 ⟨M:N⟩\langle M{:}N \rangle이 카잉 달력의 마지막 해일 때, ⟨x:y⟩\langle x{:}y \rangle가 몇 번째 해를 나타내는지 구하는 프로그램을 작성하라.

입력

입력은 표준 입력으로 주어진다. 첫 번째 줄에는 테스트 데이터의 개수를 나타내는 정수 TT가 주어진다. 이어지는 각 줄에는 네 정수 MM, NN, xx, yy가 주어진다. (1≤M,N≤40,0001 \le M, N \le 40{,}000, 1≤x≤M1 \le x \le M, 1≤y≤N1 \le y \le N) 여기서 ⟨M:N⟩\langle M{:}N \rangle은 카잉 달력의 마지막 해를 나타낸다.

출력

각 테스트 데이터마다 ⟨x:y⟩\langle x{:}y \rangle가 몇 번째 해인지를 정수 kk로 한 줄에 출력한다. 만약 ⟨x:y⟩\langle x{:}y \rangle로 표현되는 해가 존재하지 않으면, 즉 ⟨x:y⟩\langle x{:}y \rangle가 유효하지 않은 표현이면 −1-1을 출력한다.

예제3

  1. 예제 1

    입력
    3
    10 12 3 9
    10 12 7 2
    13 11 5 6
    
    예상 출력
    33
    -1
    83
    
  2. 예제 2

    입력
    1
    1 1 1 1
    
    예상 출력
    1
    
  3. 예제 3

    입력
    1
    6 4 3 1
    
    예상 출력
    9