题意:
思路:
结论是一步步搞出来的
贡献也要仔细算
Code:
#include <iostream>
#include <algorithm>
#define int long long
using namespace std;
const int N = 200010;
int n, x;
int a[N];
void solve() {
cin >> n >> x;
int mx = -1e9, mn = 1e9, mxx = -1e9, res = 0;
for (int i = 1; i <= n; i++) {
cin >> a[i];
if (i != 1) res += abs(a[i] - a[i - 1]);
mn = min(mn, a[i]);
mx = max(mx, a[i]);
}
if (mn > 1) res += min(min(a[1] - 1, a[n] - 1), (mn - 1) * 2);
if (mx < x) res += min(min(x - a[1], x - a[n]), (x - mx) * 2);
cout << res << endl;
}
signed main() {
int T;
cin >> T;
while (T--) solve();
return 0;
}