1.利用pair记录坐标

2.计算总和sum

3.找到少走的最大路长

#include <algorithm>
#include <cstring>
using namespace std;
typedef pair<int,int> PII;//创建容器
#define x first
#define y second
const int N = 100100;
PII res[N];            //容器数组
int n;
int dis(PII a,PII b)
{
    return abs(a.x-b.x)+abs(a.y-b.y);  //计算距离
}
int main()
{
    scanf("%d",&n);
    int sum = 0;
    for(int i=1;i<=n;i++) {
        cin>>res[i].x>>res[i].y;
        if(i>1) sum+=dis(res[i],res[i-1]);  //求总距离
    }
    int maxt = 0;
    for(int i=2;i<n;i++) {
        int s = dis(res[i],res[i-1])+dis(res[i],res[i+1])-dis(res[i-1],res[i+1]);
        maxt = max(maxt,s);    //找到最大·的能少走的路
    }
    cout<<sum-maxt;
    return 0;
}