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

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

분수 줄이기

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

요약
분수 a/b에 대해 역수와 부호 반전, 1 더하기 연산만으로 0에 도달하는 최소 연산 횟수를 1e9+7로 나눈 나머지로 구하고, 불가능하면 -1을 출력한다.
난이도

어려움10점 중 9점

유형
수학, 정수론, 동적 계획법, 구현
정답자
아직 제출이 없습니다

문제

Chiaki에게 분수 ab\frac{a}{b}가 있다. 이 분수는 기약분수가 아니어도 된다. Chiaki는 다음 두 연산을 할 수 있다.

  • 현재 분수가 xx일 때, −1x-\frac{1}{x}로 바꿀 수 있다.
  • 현재 분수가 xx일 때, x+1x+1로 바꿀 수 있다.

Chiaki는 ab\frac{a}{b}를 00으로 만들기 위해 필요한 최소 연산 횟수를 알고 싶어 한다. 이 수는 매우 클 수 있으므로 109+710^9+7로 나눈 나머지를 구한다.

입력

여러 개의 테스트 케이스가 주어진다. 입력의 첫째 줄에는 테스트 케이스의 개수 TT가 주어진다. (1≤T≤1051 \le T \le 10^5) 각 테스트 케이스는 다음과 같다.

첫째 줄에 두 정수 aa와 bb가 주어진다. (−1018≤a≤1018,1≤b≤1018-10^{18} \le a \le 10^{18}, 1 \le b \le 10^{18}) 이는 분수를 나타낸다.

출력

각 테스트 케이스마다 ab\frac{a}{b}를 00으로 만들기 위한 최소 연산 횟수를 109+710^9+7로 나눈 나머지를 출력한다. 00으로 만들 수 없다면 −1-1을 출력한다.

힌트

1번째 예제에서는 연산이 필요하지 않다.

2번째 예제에서 가능한 수열의 한 예는 11→−11→0\frac{1}{1} \to -\frac{1}{1} \to 0이다.

3번째 예제에서 가능한 수열의 한 예는 −12→12→−21→−11→0-\frac{1}{2} \to \frac{1}{2} \to -\frac{2}{1} \to -\frac{1}{1} \to 0이다.

4번째 예제에서 가능한 수열의 한 예는 −24→24→−42→−22→0-\frac{2}{4} \to \frac{2}{4} \to -\frac{4}{2} \to -\frac{2}{2} \to 0이다.

5번째 예제에서 가능한 수열의 한 예는 85→−58→38→−83→−53→−23→13→−31→−21→−11→0\frac{8}{5} \to -\frac{5}{8} \to \frac{3}{8} \to -\frac{8}{3} \to -\frac{5}{3} \to -\frac{2}{3} \to \frac{1}{3} \to -\frac{3}{1} \to -\frac{2}{1} \to -\frac{1}{1} \to 0이다.

예제1

  1. 예제 1

    입력
    5
    0 1
    1 1
    -1 2
    -2 4
    8 5
    
    예상 출력
    0
    2
    4
    4
    10