1. 程式人生 > 其它 >第十一屆藍橋杯國賽 C++ B組 試題 F: 皮亞諾曲線距離

第十一屆藍橋杯國賽 C++ B組 試題 F: 皮亞諾曲線距離

技術標籤:藍橋

時間限制: 1.0s 記憶體限制: 256.0MB 本題總分:15 分
【問題描述】
皮亞諾曲線是一條平面內的曲線。
下圖給出了皮亞諾曲線的 1 階情形,它是從左下角出發,經過一個 3×3 的方格中的每一個格子,最終到達右上角的一條曲線。
在這裡插入圖片描述

下圖給出了皮亞諾曲線的 2 階情形,它是經過一個 3 2 × 3 2 的方格中的每一個格子的一條曲線。它是將 1 階曲線的每個方格由 1 階曲線替換而成。
在這裡插入圖片描述

下圖給出了皮亞諾曲線的 3 階情形,它是經過一個 3 3 × 3 3 的方格中的每一個格子的一條曲線。它是將 2 階曲線的每個方格由 1 階曲線替換而成。( 最後一列倒數六和第七個點應該連著,圖片有誤)


皮亞諾曲線總是從左下角開始出發,最終到達右上角。我們將這些格子放到座標系中,對於 k 階皮亞諾曲線,左下角的座標是(0,0),右上角座標是 (3 k − 1,3 k − 1),右下角座標是 (3 k − 1,0),左上角座標是(0,3 k − 1)。給定 k 階皮亞諾曲線上的兩個點的座標,請問這兩個點之間,如果沿著皮亞諾曲線走,距離是到少?
【輸入格式】
輸入的第一行包含一個正整數 k,皮亞諾曲線的階數。
第二行包含兩個整數 x 1 , y 1 ,表示第一個點的座標。
第三行包含兩個整數 x 2 , y 2 ,表示第二個點的座標。
【輸出格式】
輸出一個整數,表示給定的兩個點之間的距離。
【樣例輸入】

1
0 0
2 2

【樣例輸出】

8

【樣例輸入】

2
0 2
0 3

【樣例輸出】

13

【評測用例規模與約定】
對於 30% 的評測用例,0 ≤ k ≤ 10。
對於 50% 的評測用例,0 ≤ k ≤ 20。
對於所有評測用例,0 ≤ k ≤ 100, 0 ≤ x 1 ,y 1 , x 2 ,y 2 < 3 k , x 1 ,y 1 , x 2 ,y 2 ≤ 10 18 。
資料保證答案不超過 10 18 。

//先放一下