Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 600 点
問題文
高橋君は黒板に整数 X を書きました。
高橋君は以下の 3 種類の操作を好きな順序で何回でも実行することができます。
- 黒板に書かれている値を 1 増やす
- 黒板に書かれている値を 1 減らす
- 黒板に書かれている値を 2 倍する
高橋君が黒板に書かれている値を Y にするために必要な最小の操作回数を求めてください。
制約
- 1 \le X \le 10^{18}
- 1 \le Y \le 10^{18}
- X, Y は整数である
入力
入力は以下の形式で標準入力から与えられる。
X Y
出力
答えを出力せよ。
入力例 1
3 9
出力例 1
3
最初、黒板には 3 が書かれています。以下の 3 回の操作で、これを 9 にすることができます。
- 黒板に書かれている値を 1 増やす。黒板に書かれている値は 4 になる。
- 黒板に書かれている値を 2 倍する。黒板に書かれている値は 8 になる。
- 黒板に書かれている値を 1 増やす。黒板に書かれている値は 9 になる。
入力例 2
7 11
出力例 2
3
以下の手順で黒板に書かれている値を 11 にすることができます。
- 黒板に書かれている値を 1 減らす。黒板に書かれている値は 6 になる。
- 黒板に書かれている値を 2 倍する。黒板に書かれている値は 12 になる。
- 黒板に書かれている値を 1 減らす。黒板に書かれている値は 11 になる。
入力例 3
1000000000000000000 1000000000000000000
出力例 3
0
最初から黒板に書かれている値が Y に等しい場合、0 を出力してください。
Score : 600 points
Problem Statement
Takahashi has written an integer X on a blackboard. He can do the following three kinds of operations any number of times in any order:
- increase the value written on the blackboard by 1;
- decrease the value written on the blackboard by 1;
- multiply the value written on the blackboard by 2.
Find the minimum number of operations required to have Y written on the blackboard.
Constraints
- 1 \le X \le 10^{18}
- 1 \le Y \le 10^{18}
- X and Y are integers.
Input
Input is given from Standard Input in the following format:
X Y
Output
Print the answer.
Sample Input 1
3 9
Sample Output 1
3
Initially, 3 is written on the blackboard. The following three operations can make it 9:
- increase the value by 1, which results in 4;
- multiply the value by 2, which results in 8;
- increase the value by 1, which results in 9.
Sample Input 2
7 11
Sample Output 2
3
The following procedure can make the value on the blackboard 11:
- decrease the value by 1, which results in 6;
- multiply the value by 2, which results in 12;
- decrease the value by 1, which results in 11.
Sample Input 3
1000000000000000000 1000000000000000000
Sample Output 3
0
If the value initially written on the blackboard equals Y, print 0.