카잉 달력
면접 대비시간 제한1초메모리 제한256 MB
주기 M과 N이 주어질 때 k mod M = x, k mod N = y를 만족하는 가장 작은 k를 구하거나, 없으면 -1을 출력한다.
문제
한 고고학 탐사대가 남아메리카의 잉카 제국이, 뛰어난 문명을 지녔던 카잉 제국을 토대로 세워졌다는 사실을 밝혀냈다. 카잉 제국 사람들은 독특한 달력을 사용한 것으로 알려져 있다. 그들은 과 이하인 두 자연수 , 를 이용해 각 해를 형식으로 표현했다.
세상이 시작된 첫 번째 해는 , 두 번째 해는 로 표현한다. 어떤 해를 라 할 때, 그 다음 해 는 다음 규칙으로 정해진다.
- 이면 이고, 그렇지 않으면 이다.
- 이면 이고, 그렇지 않으면 이다.
은 이 달력의 마지막 해이며, 이 해에 세상의 종말이 온다고 전해진다.
예를 들어 , 라면 첫 번째 해는 , 11번째 해는 , 13번째 해는 , 그리고 마지막인 60번째 해는 로 표현된다.
네 정수 , , , 가 주어지고 이 카잉 달력의 마지막 해일 때, 가 몇 번째 해를 나타내는지 구하는 프로그램을 작성하라.
입력
입력은 표준 입력으로 주어진다. 첫 번째 줄에는 테스트 데이터의 개수를 나타내는 정수 가 주어진다. 이어지는 각 줄에는 네 정수 , , , 가 주어진다. (, , ) 여기서 은 카잉 달력의 마지막 해를 나타낸다.
출력
각 테스트 데이터마다 가 몇 번째 해인지를 정수 로 한 줄에 출력한다. 만약 로 표현되는 해가 존재하지 않으면, 즉 가 유효하지 않은 표현이면 을 출력한다.