x to y
题号:NC278900
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给定两个整数 x,y,jackle 希望把 x 变成 y

他每次可以进行如下两种操作之一:
  • 选择任意一个整数 z,令 x=x\ \&\ z
  • 选择任意一个整数 z,令 x=x\ |\ z

请问最少操作几次可以把 x 变成 y

输入描述:

本题有多组测试数据。

第一行输入 1 个正整数 T(1\leq T\leq 10^5) ,表示数据组数。

接下来 T 行,每行 2 个整数 x,y(0\leq x,y\leq 10^{18})

输出描述:

对于每组测试数据,输出最少操作次数。
示例1

输入

复制
2
0 0
0 1

输出

复制
0
1