题目描述
对于非负整数 K,定义如下的 K 级分形图案。
- 0 级分形是仅包含一个白色格子的网格。
- 当 K>0 时,K 级分形是一个 3K×3K 的网格。将该网格划分为 9 个 3K−1×3K−1 的子块时,
- 中央的子块全部为黑色格子。
- 其余 8 个子块均为 K−1 级分形。
例如,2 级分形如下图所示。

在 30 级分形中,将从上往下第 r 行,从左往右第 c 列的格子记作 (r,c)。
给定 Q 组整数 (ai,bi,ci,di),对于每组,求从 (ai,bi) 到 (ci,di) 的距离。
这里,从 (a,b) 到 (c,d) 的距离定义为满足以下条件的最小 n:
- 存在一条仅经过白色格子的路径 (x0,y0),…,(xn,yn),满足:
- (x0,y0)=(a,b)
- (xn,yn)=(c,d)
- 对于任意 i(0≤i≤n−1),格子 (xi,yi) 与 (xi+1,yi+1) 边相邻。
输入格式
输入从标准输入读入,格式如下:
Q
a1 b1 c1 d1
⋮
aQ bQ cQ dQ
输出格式
输出共 Q 行。第 i 行输出从 (ai,bi) 到 (ci,di) 的距离。
输入输出样例 #1
输入 #1
2
4 2 7 4
9 9 1 9
输出 #1
5
8
说明/提示
数据范围
- 1≤Q≤10000
- 1≤ai,bi,ci,di≤330
- (ai,bi)=(ci,di)
- (ai,bi) 和 (ci,di) 均为白色格子
- 输入均为整数
样例解释 1
