#5429. Problem 1. Marathon

0

Problem 1. Marathon

1. 马拉松 (Marathon)

USACO 2014 十二月月赛, 铜组

Farmer John 对他的奶牛健康状况不佳感到不满,于是让它们参加各种不同的体育活动。他的 prized cow Bessie 报名参加了一个跑步班,最终她需要在 Farmer John 农场附近的城市 downtown 区域跑一场马拉松!

马拉松路线包括 N 个检查点(3 <= N <= 100,000),需要按顺序依次访问,其中检查点 1 是起点,检查点 N 是终点。Bessie 本应逐一访问所有这些检查点,但作为一头懒牛,她决定她最多可以跳过一个检查点(即可以跳过 0 个或 1 个检查点)来缩短她的总行程。然而,她不能跳过检查点 1 或 N,因为那样太显眼了。

请帮助 Bessie 找出如果她最多可以跳过一个检查点,她需要跑的最小距离是多少。

注意,由于路线设在有网格状街道的 downtown 区域,位于 (x1, y1) 和 (x2, y2) 的两个检查点之间的距离由 |x1-x2| + |y1-y2| 给出。这种测量距离的方式——即 x 的差加上 y 的差——有时被称为 "曼哈顿" 距离,因为它反映了这样一个事实:在 downtown 的网格中,你可以平行于 x 轴或 y 轴移动,但不能像乌鸦飞那样沿直线移动。

输入格式:(文件 marathon.in)

第一行给出 N 的值。

接下来的 N 行每行包含两个空格分隔的整数 x 和 y,代表一个检查点(-1000 <= x <= 1000, -1000 <= y <= 1000)。检查点按照必须访问的顺序给出。注意,路线可能会多次交叉自身,多个检查点可能位于同一个物理位置。当 Bessie 跳过这样一个检查点时,她只是跳过该检查点的一个实例——她不会跳过所有位于同一位置的检查点。

样例输入:

4
0 0
8 3
11 -1
10 0

样例输出:

14

📋 可直接拷贝的测试数据:

4
0 0
8 3
11 -1
10 0

输出:

14