二分算法是一种非常有用的算法。它的最基本实现为:对一个长为 升序数组 (这里设下标从 开始)要找到 元素所在的下标,初始搜索区间为 ,不断执行以下步骤:
记在这个过程中,进行比较 与 的次数为 。则数组 的平均搜索长度 (average search length)为:。
容易发现, 仅与 有关,与具体的 取值无关。给定一个 ,求 。
输入
输入一行两个整数 。
输出
输出一行一个整数,代表 。
样例
标准输入 复制文本 |
3 2 |
标准输出 复制文本 |
29 |
标准输入 复制文本 |
0 0 |
标准输出 复制文本 |
1 |
标准输入 复制文本 |
114514 1919810 |
标准输出 复制文本 |
600463309 |
提示
对样例一,有 。不妨设 ,容易得到,,得 。