만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

소울메이트 찾기

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

요약
각 쌍마다 첫 번째 정수를 두 번째 정수로 만드는 데 필요한 최소 연산 횟수(2배, 2로 나누기, 1 더하기)를 구합니다.
난이도

보통10점 중 5점

유형
수학, 그리디
정답자
아직 제출이 없습니다

문제

Farmer John의 소들은 각각 자신의 소울메이트를 찾고 싶어 한다. 소울메이트는 성격이 비슷하면서 궁합이 가장 잘 맞는 다른 소이다. 각 소의 성격은 정수 pip_i (1≤pi≤10181 \leq p_i \leq 10^{18})로 나타낸다. 성격이 같은 두 소는 소울메이트이다. 소는 변화 연산으로 성격을 바꿀 수 있다. 변화 연산은 2를 곱하기, pip_i가 짝수일 때 2로 나누기, 1 더하기 중 하나이다.

Farmer John은 소들을 임의의 방식으로 짝짓는다. 각 짝을 소울메이트로 만들려면 몇 번의 변화 연산이 필요한지 알고 싶어 한다. 각 짝마다 첫 번째 소가 두 번째 소와 소울메이트가 되기 위해 필요한 변화 연산의 최소 횟수를 구하라.

입력

첫 번째 줄에 짝의 개수 NN (1≤N≤101 \leq N \leq 10)이 주어진다. 이어지는 NN개의 줄에는 각각 두 소의 성격을 나타내는 정수 두 개가 주어진다. 첫 번째 수는 두 번째 수와 같아지도록 변화시켜야 하는 소의 성격이다.

출력

NN개의 줄을 출력한다. 각 짝에 대해, 첫 번째 소가 자신의 성격을 두 번째 소의 성격과 같게 만드는 데 필요한 연산의 최소 횟수를 출력한다.

힌트

첫 번째 테스트 케이스에서 최적의 변화 순서는 31  ⟹  32  ⟹  16  ⟹  8  ⟹  9  ⟹  10  ⟹  11  ⟹  12  ⟹  1331 \implies 32 \implies 16 \implies 8 \implies 9 \implies 10 \implies 11 \implies 12 \implies 13이다.

두 번째 테스트 케이스에서 최적의 변화 순서는 12  ⟹  6  ⟹  7  ⟹  812 \implies 6 \implies 7 \implies 8이다.

예제1

  1. 예제 1

    입력
    6
    31 13
    12 8
    25 6
    10 24
    1 1
    997 120
    
    예상 출력
    8
    3
    8
    3
    0
    20