题目描述
非負整数 K に対し、以下のようにレベル K のフラクタルを定義します。
- レベル 0 のフラクタルとは、白いマス一個のみからなるグリッドである。
- K > 0 のとき、レベル K のフラクタルは 3K × 3K のグリッドである。このグリッドを 3K−1 × 3K−1 のブロック 9 個に分割したとき、
- 中央のブロックは全て黒マスからなる。
- 他の 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) への距離を出力せよ。
题目大意
定义
k 级图表示长宽均为 3k 的图,将图分为9部分(见题目,每部分边长为 3k−1 ),最中间一部分全为黑,剩下的每一部分都是一个 k−1 级图.
现有 ∞ 级图,格点为黑的表示不能走,询问 Q 次 (ai,bi) 到 (ci,di) 的最短距离。不能走斜线.
数据范围
1≤Q≤10000
1≤ai,bi,ci,di≤330
保证 询问的两点不会是同一位置,所有输入都是整数.
样例解释
2
4 2 7 4
9 9 1 9
5
8
提示
制約
- 1 ≤ Q ≤ 10000
- 1 ≤ ai, bi, ci, di ≤ 330
- (ai, bi) = (ci, di)
- (ai, bi), (ci, di) は白マスである。
- 入力は全て整数である。
Sample Explanation 1
![](https://img.atcoder.jp/panasonic2020/b590cee9850abdad4109ab940f9efe5a.png)