长跑比赛
时间限制:1秒 内存限制:256M
【问题描述】
H老师组织了一场长跑比赛。
在比赛中,参赛同学们需要依次经过 \(n\) 个检查点(依次编号为 \(1,2,…,n\)),其中 1 号检查点是比赛的起点,\(n\) 号检查点是终点。HMY本该从 1 开始一个接一个依次经过检查点的,但他很懒,打算作弊一次,即跳过一个检查点,以此来缩短跑步的距离。他不敢跳过 1 号和 \(n\) 号点,因为这样作弊太明显了,容易被发现。
如果HMY最多能跳过一个检查点,请帮助HMY计算他跑的最短距离是多少。
比赛中的检查点以坐标的形式给出,两点间距离是曼哈顿距离:比如 \((x_1,y_1)\) 和 \((x_2,y_2)\) 的距离为曼哈顿距离:\(|x_1-x_2| + |y_1-y_2|\)。
【输入格式】
第一行,一个整数 \(n\),表示检查点的数目。
接下来 \(n\) 行,每行两个整数x和y,依次给出了每个检查点的坐标 \((-1000 <= x,y <= 1000)\)。注意:检查点是按起点到终点的顺序依次给出的,但有的检查点可能会多次出现,表示这个点要被多次经过,HMY只能跳过他一次,也就是同一个点不能被多次跳过。
【输出格式】
一个整数,表示所求的最短距离。
【输入输出样例1】
Input
4
0 0
8 3
11 -1
10 0
Output
14
【输入输出样例解释】
从 1->2->3->4 的路线长度为 20(如下左图);如果跳过 2 号点,则 1->3->4 的路线长度为 14(如下右图)。
【数据限制】
\(30\%\) 的数据:\(2 < n < 1001\)
\(100\%\) 的数据:\(2 < n < 100,000\)