#G 皮亚诺曲线距离
时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分
问题描述
皮亚诺曲线是一条平面内的曲线。
下图给出了皮亚诺曲线的 1 11 阶情形,它是从左下角出发,经过一个 3 × 3 3 × 33×3 的方格中的每一个格子,最终到达右上角的一条曲线。
下图给出了皮亚诺曲线的 2 22 阶情形,它是经过一个 3 2 × 3 2 3^{2} × 3^{2}32×32 的方格中的每一个格子的一条曲线。它是将 1 11 阶曲线的每个方格由 1 11 阶曲线替换而成。
下图给出了皮亚诺曲线的 3 33 阶情形,它是经过一个 3 3 × 3 3 3^{3} × 3^{3}33×33 的方格中的每一个格子的一条曲线。它是将 2 22 阶曲线的每个方格由 1 11 阶曲线替换而成。
皮亚诺曲线总是从左下角开始出发,最终到达右上角。
我们将这些格子放到坐标系中,对于 k 阶皮亚诺曲线,左下角的坐标是
(0 00, 0 00),右上角坐标是 (3 k − 1 3^{k} − 13k−1, 3 k − 1 3^{k} − 13k−1),右下角坐标是 (3 k − 1 3^{k} − 13k−1, 0 00),左上角坐标是(0 00, 3 k − 1 3^{k} − 13k−1)。
给定 k 阶皮亚诺曲线上的两个点的坐标,请问这两个点之间,如果沿着皮亚诺曲线走,距离是到少?
输入格式
输入的第一行包含一个正整数 k kk,皮亚诺曲线的阶数。
第二行包含两个整数 x 1 x_{1}x1, y 1 y_{1}y1,表示第一个点的坐标。
第三行包含两个整数 x 2 x_{2}x2, y 2 y_{2}y2,表示第二个点的坐标。
输出格式
输出一个整数,表示给定的两个点之间的距离。
测试样例1
Input:
1
0 0
2 2
Output:
8
测试样例2
Input:
2
0 2
0 3
Output:
13
评测用例规模与约定
对于 30 3030% 的评测用例,0 ≤ k ≤ 10 0 ≤ k ≤ 100≤k≤10。
对于 50 5050% 的评测用例,0 ≤ k ≤ 20 0 ≤ k ≤ 200≤k≤20。
对于所有评测用例,0 ≤ k ≤ 100 , 0 ≤ x 1 , y 1 , x 2 , y 2 < 3 k , x 1 , y 1 , x 2 , y 2 ≤ 1 0 18 0 ≤ k ≤ 100, 0 ≤ x_{1}, y_{1}, x_{2}, y_{2} < 3^{k}, x1, y1, x2, y2 ≤ 10^{18}0≤k≤100,0≤x1,y1,x2,y2<3k,x1,y1,x2,y2≤1018。
数据保证答案不超过 1 0 18 10^{18}1018。
code:
// 不会 这TM也是给C组做的题??
以上是《Java 蓝桥杯 国赛 第十一届 C组 试题G:皮亚诺曲线距离》的全部内容,
感谢您对程序员阿鑫博客的支持!
版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!