反复横跳
题号:NC218864
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

牛牛在位置,牛妹在位置,初始时,牛牛每次可以执行以下操作之一:

  1. 跳:牛牛从当前所在位置跳到,随后
  2. 重置:令

求当牛牛的策略足够优秀时,从走到牛妹身边所需要执行的最少操作次数。

输入描述:

第一行两个整数

输出描述:

输出一行一个整数表示答案。
示例1

输入

复制
1 5

输出

复制
5

说明

第一步执行”跳“,此时牛牛走到2这个位置。第二步执行”跳”,此时牛牛走到0这个位置。第三步执行“跳”,此时牛牛走到4这个位置。第四步执行“重置”。第五步执行“跳”操作,走到5这个位置。
示例2

输入

复制
3 2

输出

复制
2

说明

第一步执行“跳”,此时牛牛走到4这个位置。第二步执行“跳”,走到2这个位置。
示例3

输入

复制
998 998

输出

复制
0
示例4

输入

复制
555 666

输出

复制
31

备注: