#MT0006. F. 皮亚诺曲线距离

F. 皮亚诺曲线距离

Description\mathcal {Description}

皮亚诺曲线是一条平面内的曲线。 下图给出了皮亚诺曲线的 11 阶情形,它是从左下角出发,经过一个 3×33 × 3 的方格中的每一个格子,最终到达右上角的一条曲线。

下图给出了皮亚诺曲线的 22 阶情形,它是经过一个 32×323^2 × 3^2 的方格中的每一个格子的一条曲线。它是将 11 阶曲线的每个方格由 11 阶曲线替换而成。

下图给出了皮亚诺曲线的 33 阶情形,它是经过一个 33×333^3 × 3^3 的方格中的每一 个格子的一条曲线。它是将 22 阶曲线的每个方格由 11 阶曲线替换而成。

皮亚诺曲线总是从左下角开始出发,最终到达右上角。 我们将这些格子放到坐标系中,对于 kk 阶皮亚诺曲线,左下角的坐标是(0,0),右上角坐标是 (3^k − 1,3^k − 1),右下角坐标是 (3^k − 1,0),左上角坐标是(0,3^k − 1)。 给定 kk 阶皮亚诺曲线上的两个点的坐标,请问这两个点之间,如果沿着皮亚诺曲线走,距离是多少?

Format\mathcal {Format}

Input\mathcal {Input}

输入的第一行包含一个正整数 kk,皮亚诺曲线的阶数。 第二行包含两个整数 x1,y1x_1 , y_1 ,表示第一个点的坐标。 第三行包含两个整数 x2,y2x_2 , y_2 ,表示第二个点的坐标。

Output\mathcal {Output}

输出一个整数,表示给定的两个点之间的距离。

Samples\mathcal {Samples}

1
0 0
2 2
8
2
0 2
0 3
13

DataScale\mathcal{DataScale}

对于 3030 % 的评测用例,0k100 ≤ k ≤ 10

对于 5050 % 的评测用例,0k200 ≤ k ≤ 20

对于所有评测用例,0k1000 ≤ k ≤ 100, 0x1,y1,x2,y2<3k0 ≤ x_1 ,y_1 , x_2 ,y_2 < 3^k , x1,y1,x2,y21018x_1 ,y_1 , x_2 ,y_2 ≤ 10^{18} 。 数据保证答案不超过 101810^{18}

Limitation\mathcal {Limitation}

11s, 10241024KiB for each test case.