페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#8313
서브태스크
다국어

Transforming Pairs 1초 1024MB

문제

천재 소 Bessie는 새로운 매력, 즉 수학적 마법에 빠지게 되었습니다! 어느 날, 농부 John의 목장 밭을 누비던 중, 그녀는 두 개의 마법에 걸린 건초 더미를 발견합니다. 첫 번째 더미에는 a개의 건초가, 두 번째 더미에는 b개의 건초가 있습니다 (1 ≤ a, b ≤ 10¹⁸). 건초 옆, 흙에 반쯤 묻힌 채로 고대 두루마리가 발견되자, 두루마리를 펼치면 빛나는 글자들이 한 예언을 드러냅니다:

“위대한 초원의 명령을 이행하기 위해서는, 선택받은 자가 이 두 겸손한 건초 더미를 정확히 c개와 d개의 건초로 바꿔놓아야 한다—더도 덜도 아니게.”

Bessie는 오직 다음 두 가지 주문만을 사용할 수 있음을 깨닫습니다:

  • 주문 1: 두 번째 더미에 현재 있는 건초의 수만큼을 첫 번째 더미에 추가하여, 첫 번째 더미의 크기를 늘린다.

  • 주문 2: 첫 번째 더미에 현재 있는 건초의 수만큼을 두 번째 더미에 추가하여, 두 번째 더미의 크기를 늘린다.

이 주문들은 순차적으로 실행해야 하며, 원하는 만큼, 임의의 순서로 사용할 수 있습니다. 최종적으로 첫 번째 더미가 정확히 c개의 건초, 두 번째 더미가 정확히 d개의 건초가 되어야 합니다 (1 ≤ c, d ≤ 10¹⁸).

각각 T (1 ≤ T ≤ 10⁴)개의 독립 테스트 케이스에 대해, 예언을 이행하기 위해 필요한 최소 주문(연산) 횟수를 구하거나, 불가능할 경우 -1을 출력하세요.


입력

첫 번째 줄에 테스트 케이스의 수 T가 주어집니다.

이후 T개의 줄 각각에 네 정수 a, b, c, d가 공백으로 구분되어 주어집니다.


출력

각 테스트 케이스마다, 예언을 이행하기 위해 필요한 최소 주문(연산) 횟수를 한 줄에 출력하세요. 만약 목표 상태에 도달하는 것이 불가능하다면 -1을 출력합니다.


부분문제

번호 점수 조건
#120점

max(c,d)≤20⋅min(a,b)

#230점

T ≤ 10 및 a, b, c, d ≤ 10⁶

#350점

추가 제약 없음


예제1

입력
4
5 3 5 2
5 3 8 19
5 3 19 8
5 3 5 3
출력
-1
3
-1
0
  • 첫 번째 테스트 케이스: a=5, b=3, c=5, d=2 인 경우, b가 이미 d보다 크므로 두 번째 더미를 줄일 수 없으며, 연산은 오직 건초를 늘리는 방향으로만 가능하기 때문에 목표에 도달할 수 없습니다.

  • 두 번째 테스트 케이스: a=5, b=3, c=8, d=19 인 경우, Bessie는 먼저 주문 1을 사용하여 첫 번째 더미를 5에서 8로 만들고 (즉, (5,3) → (8,3)), 이후 주문 2를 두 번 사용하여 두 번째 더미를 3에서 11, 그리고 19로 만들 수 있습니다. 총 3번의 연산이 필요합니다.

  • 세 번째 테스트 케이스: a=5, b=3, c=19, d=8 인 경우, 목표인 c와 d의 순서가 바뀌어 있어 연산으로 만들 수 없습니다.

  • 네 번째 테스트 케이스: a=5, b=3, c=5, d=3 인 경우, 이미 목표 상태에 도달해 있으므로 추가 연산이 필요 없습니다.


예제2

입력
1
1 1 1 1000000000000000000
출력
999999999999999999

단일 테스트 케이스에서 초기 상태는 (1, 1)이고 목표는 (1, 10¹⁸)입니다. 첫 번째 더미는 이미 목표치에 도달해 있으므로, 두 번째 더미를 1에서 10¹⁸으로 만들기 위해 10¹⁸ - 1번의 연산이 필요합니다.


출처

USACO 2025 February Silver

역링크 공식 문제집만