最近学校又双叒叕停水了,所以 FS 打算去蓄水。
FS 在超市买了 N 个瓶子,每个瓶子的容量无限大。而且买来的瓶子刚开始都有 1 升水。后来 FS 发现瓶子实在太多了,于是他决定保留不超过 K 个瓶子。每次他会选择两个当前含水量相同的瓶子,把一个瓶子的水全部倒进另一个里,然后把空瓶丢弃。(因为 FS 是个勤俭持家的好男人,所以不能丢弃有水的瓶子)
显然在某些情况下 FS 无法达到目标,比如 N=3,K=1。此时 FS 需要重新买一些新的瓶子(新瓶子同样容量无限,开始时有 1 升水),以到达目标。
FS 的数学实在是太差了,上个月才考了 110 分(满分 100+10),所以想让聪明的你来计算最少需要买多少新瓶子才能达到目标呢?
输入
第一行整数 T \ (1 \leq T \leq 100),代表有 T 组数据。
接下来的 T 行有两个数字 N,K \ (1 \leq N \leq 10^{10}, 1 \leq K \leq 100),代表 FS 刚开始买了 N 瓶水,最后要留下不超过 K 个瓶子。
输出
对于每一组数据:输出一行,一行里包括一个非负整数,表示最少需要买多少新瓶子。
样例
标准输入 复制文本 |
2 3 1 4 2 |
标准输出 复制文本 |
1 0 |
来源
2018 软件学院蓝桥杯热身赛 (For 18SEer only)