AcWing 1902. 马拉松
原题链接
简单
作者:
H.A.H.
,
2022-04-23 13:10:44
,
所有人可见
,
阅读 265
$\Huge\color{green}{春季每日一题2022题解集合}$
算法标签
$\large{枚举}$
C++ 代码
#include<bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
int x[100201],y[100201];
int dist(int a, int b){
return abs(x[a] - x[b]) + abs(y[a] - y[b]);
}
int main(){
int n;
int sum = 0, maxn = 0;
cin>> n;
for(int i = 1; i <= n; i ++) cin>> x[i]>> y[i];
for(int i = 2; i <= n; i ++) sum += dist(i - 1, i);
for(int i = 2; i <= n - 1; i ++) maxn = max(maxn , dist(i - 1, i) + dist(i + 1, i) - dist(i - 1, i + 1));
cout<< sum - maxn;
return 0;
}