我会说这场爆零了?
#include <bits/stdc++.h>
#define maxn 100010
#define INF (int)(1e9)
#define MOD ((int)1e9+7)
#define maxnode 400010
#define sigma_size 30
typedef long long ll;
using namespace std;
ll a[100010];
int main() {
int n, m;
map<ll, vector<ll> > M;
while (cin >> n >> m) {
for (int i = 0; i < m; ++ i) {
cin >> a[i];
}
ll sum = 0;
for (int i = 1; i < m; ++ i) {
sum += abs(a[i] - a[i-1]);
if(a[i]!=a[i-1]){
M[a[i]].push_back(a[i-1]);
M[a[i-1]].push_back(a[i]);
}
}
ll Max = 0;
for (map<ll, vector<ll> >::iterator it = M.begin(); it != M.end(); ++ it) {
sort(it->second.begin(), it->second.end());
int len = it->second.size();
ll nw;
nw = it->second[(len-1)/2];
ll t1 = 0, t2 = 0;
for (int i = 0; i < it->second.size(); ++ i) {
t1 += abs(nw - it->second[i]);
t2 += abs(it->first - it->second[i]);
}
Max = max(Max, t2-t1);
}
cout << sum - Max << endl;
}
}