Toggle navigation
编绘童年
F.A.Qs
ProblemSet
Source/Category
Status
Ranklist
Contest
Login
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
达人赛白银组