Problem2091--和妈妈相聚

2091: 和妈妈相聚

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 40  Solved: 15
[Status] [Submit] [Creator:]

Description

在一个水平直线上有 n 个格子,编号从 1 到 n。童年兔一开始在编号为 x 的格子,妈妈在编号为 y 的格子。

童年兔可以移动,但是童年兔的移动受到了规则的约束。规则如下:  

如果童年兔当前在第 p 个格子,则它一步只能移动到第 p-1 个格子或者第 p × 2 个格子,且不能超出格子的边界(即不存在编号小于1或者大于n的格子)。特别地,如果 p 是偶数,则童年兔还可以移动到第 p/2 个格子。

问:童年兔最少需要几步能够从第 x 个格子移动到第 y 个格子?

Input

一行,三个整数 n,x,y,两两之间以一个空格分隔(1 ≤ x,y ≤ n ≤ 10^5)。

Output

一个整数,表示从第 x 个格子移动到第 y 个格子的最小步数。如果无法从第 x 个格子移动到第 y 个格子,输出 -1。

Sample Input Copy

【样例输入1】
10 5 8
【样例输出1】
2
【样例输入2】
10 9 2
【样例输出2】
3
【样例输入3】
11 3 11
【样例输出3】
-1

HINT

样例解释:
· 样例1:5 → 4 → 8
· 样例2:9 → 8 → 4 → 2
· 样例3:不存在可行的移动方案

数据规模与约定:
· 对于30%的数据,n≤100
· 对于60%的数据,n≤1000
· 对于10%的数据,1≤n≤10^5, 1≤x,y≤n

Source/Category